Unit conversion on Squib::Deck.new

Contributes to #21
dev
Andy Meneely 2015-02-01 23:55:01 -05:00
parent 1896689614
commit d848178bfe
2 changed files with 20 additions and 12 deletions

View File

@ -6,6 +6,7 @@ require 'squib/progress'
require 'squib/input_helpers' require 'squib/input_helpers'
require 'squib/constants' require 'squib/constants'
require 'squib/layout_parser' require 'squib/layout_parser'
require 'squib/args/unit_conversion'
# The project module # The project module
# #
@ -46,8 +47,8 @@ module Squib
# text str: 'Hello, World!" # text str: 'Hello, World!"
# end # end
# #
# @param width [Integer] the width of each card in pixels # @param width [Integer] the width of each card in pixels. Supports unit conversion (e.g. '2.5in').
# @param height [Integer] the height of each card in pixels # @param height [Integer] the height of each card in pixels. Supports unit conversion (e.g. '3.5in').
# @param cards [Integer] the number of cards in the deck # @param cards [Integer] the number of cards in the deck
# @param dpi [Integer] the pixels per inch when rendering out to PDF or calculating using inches. # @param dpi [Integer] the pixels per inch when rendering out to PDF or calculating using inches.
# @param config [String] the file used for global settings of this deck # @param config [String] the file used for global settings of this deck
@ -55,20 +56,21 @@ module Squib
# @param block [Block] the main body of the script. # @param block [Block] the main body of the script.
# @api public # @api public
def initialize(width: 825, height: 1125, cards: 1, dpi: 300, config: 'config.yml', layout: nil, &block) def initialize(width: 825, height: 1125, cards: 1, dpi: 300, config: 'config.yml', layout: nil, &block)
@width=width; @height=height @dpi = dpi
@dpi = dpi @width = Args::UnitConversion.parse width, dpi
@font = Squib::SYSTEM_DEFAULTS[:default_font] @height = Args::UnitConversion.parse height, dpi
@cards = [] @font = Squib::SYSTEM_DEFAULTS[:default_font]
@cards = []
@custom_colors = {} @custom_colors = {}
@img_dir = '.' @img_dir = '.'
@progress_bar = Squib::Progress.new(false) @progress_bar = Squib::Progress.new(false)
@text_hint = :off @text_hint = :off
cards.times{ @cards << Squib::Card.new(self, width, height) } cards.times{ @cards << Squib::Card.new(self, @width, @height) }
show_info(config, layout) show_info(config, layout)
load_config(config) load_config(config)
@layout = LayoutParser.load_layout(layout) @layout = LayoutParser.load_layout(layout)
if block_given? if block_given?
instance_eval(&block) instance_eval(&block) # here we go. wheeeee!
end end
end end

View File

@ -10,6 +10,12 @@ describe Squib::Deck do
expect(d.cards.size).to eq(1) expect(d.cards.size).to eq(1)
end end
it 'can be built with unit conversion' do
d = Squib::Deck.new(width: '1in', height: '2in')
expect(d.width).to eq(300)
expect(d.height).to eq(600)
end
context 'in dealing with ranges' do context 'in dealing with ranges' do
it 'calls text on all cards by default' do it 'calls text on all cards by default' do
card1 = instance_double(Squib::Card) card1 = instance_double(Squib::Card)