lib/squib/deck.rb in squib-0.3.0 vs lib/squib/deck.rb in squib-0.4.0
- old
+ new
@@ -28,16 +28,18 @@
# @api private
attr_reader :cards
# :nodoc:
# @api private
- attr_reader :text_hint
+ attr_reader :text_hint, :antialias
# :nodoc:
# @api private
attr_reader :layout, :config
+ attr_reader :dir, :prefix, :count_format
+
# Squib's constructor that sets the immutable properties.
#
# This is the starting point for Squib. In providing a block to the constructor, you have access to all of Deck's instance methods.
# The documented methods in Deck are the ones intended for use by most users.
# If your game requires multiple different sizes or orientations, I recommend using multiple `Squib::Deck`s in your `deck.rb`. You can modify the internals of `Squib::Deck` (e.g. `@cards`), but that's not recommended.
@@ -54,22 +56,27 @@
# @param config [String] the file used for global settings of this deck
# @param layout [String, Array] load a YML file of custom layouts. Multiple files are merged sequentially, redefining collisons. See README and sample for details.
# @param block [Block] the main body of the script.
# @api public
def initialize(width: 825, height: 1125, cards: 1, dpi: 300, config: 'config.yml', layout: nil, &block)
+ @antialias = CONFIG_DEFAULTS['antialias']
@dpi = dpi
- @width = Args::UnitConversion.parse width, dpi
- @height = Args::UnitConversion.parse height, dpi
- @font = Squib::SYSTEM_DEFAULTS[:default_font]
+ @font = SYSTEM_DEFAULTS[:default_font]
@cards = []
@custom_colors = {}
@img_dir = '.'
- @progress_bar = Squib::Progress.new(false)
+ @progress_bar = Progress.new(false)
@text_hint = :off
- cards.times{ @cards << Squib::Card.new(self, @width, @height) }
+ @backend = :memory
+ @dir = SYSTEM_DEFAULTS[:dir]
+ @prefix = SYSTEM_DEFAULTS[:prefix]
+ @count_format = SYSTEM_DEFAULTS[:count_format]
show_info(config, layout)
load_config(config)
+ @width = Args::UnitConversion.parse width, dpi
+ @height = Args::UnitConversion.parse height, dpi
+ cards.times{ |i| @cards << Squib::Card.new(self, @width, @height, @backend, i) }
@layout = LayoutParser.load_layout(layout)
if block_given?
instance_eval(&block) # here we go. wheeeee!
end
end
@@ -91,24 +98,30 @@
# Load the configuration file, if exists, overriding hardcoded defaults
# @api private
def load_config(file)
if File.exists?(file) && config = YAML.load_file(file)
Squib::logger.info { " using config: #{file}" }
- config = Squib::CONFIG_DEFAULTS.merge(config)
- @dpi = config['dpi'].to_i
- @text_hint = config['text_hint']
+ config = CONFIG_DEFAULTS.merge(config)
+ @dpi = config['dpi'].to_i
+ @text_hint = config['text_hint']
@progress_bar.enabled = config['progress_bars']
- @custom_colors = config['custom_colors']
- @img_dir = config['img_dir']
+ @custom_colors = config['custom_colors']
+ @img_dir = config['img_dir']
+ @backend = (config['backend'].to_s.downcase.strip == 'svg') ? :svg : :memory
+ @dir = config['dir']
+ @prefix = config['prefix']
+ @count_format = config['count_format']
+ @antialias = config['antialias']
end
end
# Use Logger to show more detail on the run
# :nodoc:
# @api private
def show_info(config, layout)
Squib::logger.info "Squib v#{Squib::VERSION}"
Squib::logger.info " building #{@cards.size} #{@width}x#{@height} cards"
+ Squib::logger.info " using #{@backend}"
end
##################
### PUBLIC API ###
##################