cleaner method sigs

dev
Andy Meneely 2020-03-16 14:21:59 -04:00
parent 76ef45cfa4
commit 70b3c0b136
5 changed files with 110 additions and 108 deletions

View File

@ -2,8 +2,7 @@ require_relative 'arg_loader'
module Squib::Args module Squib::Args
module_function module_function def extract_box(opts, deck, dsl_method_defaults = {})
def extract_box(opts, deck, dsl_method_defaults = {})
Box.new(deck, dsl_method_defaults).extract!(opts, deck) Box.new(deck, dsl_method_defaults).extract!(opts, deck)
end end

View File

@ -1,6 +1,9 @@
module Squib module Squib::Args
# @api private
module Args module_function def extract_range(opts, deck)
CardRange.new(opts[:range], deck_size: deck.size)
end
class CardRange class CardRange
include Enumerable include Enumerable
@ -29,4 +32,3 @@ module Squib
end end
end end
end

View File

@ -2,9 +2,11 @@ require 'cairo'
require_relative 'arg_loader' require_relative 'arg_loader'
require_relative 'color_validator' require_relative 'color_validator'
module Squib module Squib::Args
# @api private
module Args module_function def extract_draw(opts, deck, dsl_method_defaults = {})
Draw.new(deck.custom_colors, dsl_method_defaults).extract!(opts, deck)
end
class Draw class Draw
include ArgLoader include ArgLoader
@ -89,4 +91,3 @@ module Squib
end end
end end
end

View File

@ -26,8 +26,8 @@ module Squib
def run(opts) def run(opts)
warn_if_unexpected opts warn_if_unexpected opts
range = Args::CardRange.new(opts[:range], deck_size: deck.size) range = Args.extract_range opts, deck
draw = Args::Draw.new(@deck.custom_colors).extract!(opts, deck) draw = Args.extract_draw opts, deck
range.each { |i| @deck.cards[i].background(draw.color[i]) } range.each { |i| @deck.cards[i].background(draw.color[i]) }
end end
end end

View File

@ -25,9 +25,9 @@ module Squib
def run(opts) def run(opts)
warn_if_unexpected opts warn_if_unexpected opts
range = Args::CardRange.new(opts[:range], deck_size: deck.size) range = Args.extract_range opts, deck
draw = Args::Draw.new(@deck.custom_colors).extract!(opts, deck) draw = Args.extract_draw opts, deck
box = Args.extract_box(opts, deck) box = Args.extract_box opts, deck
range.each { |i| deck.cards[i].grid(box[i], draw[i]) } range.each { |i| deck.cards[i].grid(box[i], draw[i]) }
end end
end end