Module: Babushka::AcceptsBlockFor
- Included in:
- DepDefiner
- Defined in:
- lib/babushka/accepts_block_for.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary (collapse)
Instance Method Summary (collapse)
- - (Object) block_for(method_name)
- - (Object) default_block_for(block_name)
- - (Object) default_blocks
- - (Boolean) has_block?(block_name)
- - (Object) specific_block_for(method_name)
- - (Object) store_block_for(method_name, args, block)
Class Method Details
+ (Object) included(base)
3 4 5 |
# File 'lib/babushka/accepts_block_for.rb', line 3 def self.included base base.send :extend, ClassMethods end |
Instance Method Details
- (Object) block_for(method_name)
63 64 65 |
# File 'lib/babushka/accepts_block_for.rb', line 63 def block_for method_name specific_block_for(method_name) or default_block_for(method_name) end |
- (Object) default_block_for(block_name)
43 44 45 46 47 48 49 |
# File 'lib/babushka/accepts_block_for.rb', line 43 def default_block_for block_name differentiator = Base.host.differentiator_for payload[block_name].keys L{ debug "#{block_name} not defined#{" for #{differentiator}" unless differentiator.nil?}." true } end |
- (Object) default_blocks
51 52 53 |
# File 'lib/babushka/accepts_block_for.rb', line 51 def default_blocks self.class.default_blocks end |
- (Boolean) has_block?(block_name)
38 39 40 41 |
# File 'lib/babushka/accepts_block_for.rb', line 38 def has_block? block_name payload[block_name] ||= {} !!specific_block_for(block_name) end |
- (Object) specific_block_for(method_name)
67 68 69 70 |
# File 'lib/babushka/accepts_block_for.rb', line 67 def specific_block_for method_name payload[method_name][(Base.host.match_list & payload[method_name].keys).first] || default_blocks[method_name] end |
- (Object) store_block_for(method_name, args, block)
55 56 57 58 59 60 61 |
# File 'lib/babushka/accepts_block_for.rb', line 55 def store_block_for method_name, args, block raise "#{method_name} only accepts args like :on => :linux (as well as a block arg)." unless args.empty? || args.first.is_a?(Hash) payload[method_name] ||= {} chosen_on = (args.first || {})[:on] || @current_platform || :all payload[method_name][chosen_on] = block end |