Class: PoolParty::Resources::Conditional

Inherits:
PoolParty::Resource show all
Defined in:
lib/poolparty/resources/conditional.rb

Instance Attribute Summary

Attributes inherited from PoolParty::Resource

#exists, #graph_index, #meta_not_if, #meta_notifies, #meta_only_if, #meta_subscribes

Attributes inherited from Base

#base_name, #init_opts

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PoolParty::Resource

#after_compile, #after_loaded_requires_parent, #before_compile, #case_of, #cloud, #compile, define_resource, define_resource_methods, defined, defined_resources, #does_not_exist!, #exists!, #has_method_name, inherited, #initialize, is_base_resource_class?, method_defined!, method_defined?, #not_if, #notifies, #only_if, #pool, #print_variable, #requires, #subscribes

Methods inherited from Base

#add_ordered_resources_to_result, #after_loaded, #all_resources, #before_load, clouds_dot_rb_dir, #clouds_dot_rb_dir, clouds_dot_rb_file, #clouds_dot_rb_file, #compile_opts, #create_graph, #dependencies, #get_resource, #has_searchable_paths, #initialize, #method_missing, #ordered_resources, #output_resources_graph, #resources, #resources_graph, #run_in_context, #run_with_callbacks, #to_s, #valid?, #validations

Methods included from Delayed

included

Methods included from Callbacks

included

Methods included from SearchablePaths

included

Constructor Details

This class inherits a constructor from PoolParty::Resource

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class PoolParty::Base

Class Method Details

.has_method_nameObject



28
29
30
# File 'lib/poolparty/resources/conditional.rb', line 28

def self.has_method_name
  "case"
end

Instance Method Details

#conditionsObject



41
42
43
# File 'lib/poolparty/resources/conditional.rb', line 41

def conditions
  @conditions ||= []
end

#else_is(output) ⇒ Object



37
38
39
# File 'lib/poolparty/resources/conditional.rb', line 37

def else_is(output)
  conditions.push([:else, output])
end


45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/poolparty/resources/conditional.rb', line 45

def print_to_chef
  arr = []
  arr << "case #{print_variable(name)}"
  conditions.each do |cond|
    if cond[0] == :else
      arr << "else"
      arr << "  #{print_variable(cond[1])}"
      break
    else
      arr << "when #{print_variable(cond[0])}"
      arr << "  #{print_variable(cond[1])}"
    end
  end
  arr << "end"
  arr.join("\n")
end

#when_is(val, output) ⇒ Object

When is



33
34
35
# File 'lib/poolparty/resources/conditional.rb', line 33

def when_is(val, output)
  conditions << [val, output]
end