Module: Babushka::AcceptsBlockFor::ClassMethods
- Defined in:
- lib/babushka/accepts_block_for.rb
Instance Method Summary collapse
- #accepted_blocks ⇒ Object
- #accepts_block_for(method_name, &default_block) ⇒ Object
- #default_blocks ⇒ Object
- #default_blocks_for(klass) ⇒ Object
- #merged_default_blocks_for(klass) ⇒ Object
Instance Method Details
#accepted_blocks ⇒ Object
21 22 23 |
# File 'lib/babushka/accepts_block_for.rb', line 21 def accepted_blocks default_blocks.keys end |
#accepts_block_for(method_name, &default_block) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/babushka/accepts_block_for.rb', line 25 def accepts_block_for method_name, &default_block default_blocks_for(self)[method_name] = default_block class_eval %Q{ def #{method_name} *args, &block payload[#{method_name.inspect}] ||= {} if block.nil? block_for #{method_name.inspect} else store_block_for #{method_name.inspect}, args, block end end } end |
#default_blocks ⇒ Object
8 9 10 |
# File 'lib/babushka/accepts_block_for.rb', line 8 def default_blocks merged_default_blocks_for self end |
#default_blocks_for(klass) ⇒ Object
17 18 19 |
# File 'lib/babushka/accepts_block_for.rb', line 17 def default_blocks_for klass (@@default_blocks ||= Hashish.hash)[klass] end |
#merged_default_blocks_for(klass) ⇒ Object
12 13 14 15 |
# File 'lib/babushka/accepts_block_for.rb', line 12 def merged_default_blocks_for klass parent_values = klass == DepDefiner ? {} : merged_default_blocks_for(klass.superclass) parent_values.merge(default_blocks_for(klass)) end |