6 changed files with 52 additions and 19 deletions
@ -1,15 +0,0 @@ |
|||||||
require_relative '../args/card_range' |
|
||||||
require_relative '../args/draw' |
|
||||||
|
|
||||||
module Squib |
|
||||||
class Deck |
|
||||||
|
|
||||||
# DSL method. See http://squib.readthedocs.io |
|
||||||
def background(opts = {}) |
|
||||||
range = Args::CardRange.new(opts[:range], deck_size: size) |
|
||||||
draw = Args::Draw.new(custom_colors).load!(opts, expand_by: size, layout: layout, dpi: dpi) |
|
||||||
range.each { |i| @cards[i].background(draw.color[i]) } |
|
||||||
end |
|
||||||
|
|
||||||
end |
|
||||||
end |
|
||||||
@ -0,0 +1,35 @@ |
|||||||
|
require_relative '../errors_warnings/warn_unexpected_params' |
||||||
|
module Squib |
||||||
|
class Deck |
||||||
|
def background(opts = {}) # DSL method. See http://squib.readthedocs.io |
||||||
|
BackgroundDSLMethod.new(self).run(opts) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
class BackgroundDSLMethod |
||||||
|
include WarnUnexpectedParam |
||||||
|
|
||||||
|
def initialize(deck) |
||||||
|
@error_cxt = <<~EOS.split("\n").join(' ').strip |
||||||
|
to Squib method '#{caller_locations[1].label}' |
||||||
|
from #{caller_locations[2].path}:#{caller_locations[2].lineno} |
||||||
|
EOS |
||||||
|
@deck = deck |
||||||
|
end |
||||||
|
|
||||||
|
def accepted_params |
||||||
|
[ |
||||||
|
:range, |
||||||
|
:color |
||||||
|
] |
||||||
|
end |
||||||
|
|
||||||
|
|
||||||
|
def run(opts) |
||||||
|
warn_unexpected_params(opts) |
||||||
|
range = Args::CardRange.new(opts[:range], deck_size: @deck.size) |
||||||
|
draw = Args::Draw.new(@deck.custom_colors).load!(opts, expand_by: @deck.size, layout: @deck.layout, dpi: @deck.dpi) |
||||||
|
range.each { |i| @deck.cards[i].background(draw.color[i]) } |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
require_relative 'caller_finder' |
||||||
|
|
||||||
|
module Squib::WarnUnexpectedParam |
||||||
|
def warn_unexpected_params(opts) |
||||||
|
unexpected = opts.keys - accepted_params |
||||||
|
unexpected.each do |key| |
||||||
|
Squib.logger.warn do |
||||||
|
"Unexpected option '#{key}' #{@error_cxt} ...ignoring" |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
Loading…
Reference in new issue