Module: TogoStanza::Stanza::ExpressionMap::Macro
- Included in:
- Base
- Defined in:
- lib/togostanza/stanza/expression_map.rb
Instance Method Summary collapse
Instance Method Details
#define_expression_map(name) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/togostanza/stanza/expression_map.rb', line 9 def define_expression_map(name) class_attribute name __send__ "#{name}=", ExpressionMap.new define_singleton_method name.to_s.singularize do |key, val = nil, &block| raise ArgumentError, 'You must specify exactly one of either a value or block' unless [val, block].one?(&:nil?) __send__ "#{name}=", __send__(name).merge(key => block || val) end end |