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)

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)

Returns:

  • (Boolean)


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