Skip to content

Commit

Permalink
Fix problem for options argument in Utusemi::Configuration#map
Browse files Browse the repository at this point in the history
  • Loading branch information
YOSHIDA Hiroki committed Jul 15, 2014
1 parent 5ddce84 commit 9876ff6
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions lib/utusemi/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ def initialize
end

def map(name, *args, &block)
name = (name || '').to_sym
return map_get(name, *args) unless block_given?
options = args.shift if args.first.is_a? Hash
map_set(name, options, &block)
Expand All @@ -13,12 +14,14 @@ def map(name, *args, &block)
private

def map_set(name, options, &block)
@maps[name.to_sym] = (options || {}).merge(block: block)
@maps[name] = {}
@maps[name].update(options) if options
@maps[name].update(block: block)
end

def map_get(name, *args)
map = @maps[name.to_sym].try(:dup) if name
block = map.delete(:block) if map
map = @maps[name].try(:dup) || {}
block = map.delete(:block)
definition = Definition.new(map)
definition.exec(*args, &block)
end
Expand Down

0 comments on commit 9876ff6

Please sign in to comment.