Class: PoolParty::Resources::Variable

Inherits:
PoolParty::Resource show all
Defined in:
lib/poolparty/resources/variable.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

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, has_method_name, inherited, 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, #method_missing, #ordered_resources, #output_resources_graph, #resources, #resources_graph, #resources_with_dependencies, #resources_without_dependencies, #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

#initialize(k, v = nil, exists = true) ⇒ Variable

Returns a new instance of Variable.



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/poolparty/resources/variable.rb', line 36

def initialize(k, v=nil, exists=true)
  case k
  when Hash
    super
  else
    if value.is_a?(Hash)
      super(v.merge(:name => k))
    else
      super({:name => k, :value => v})
    end
  end
end

Dynamic Method Handling

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

Instance Method Details

Chef uses separate files for variables, so we’ll have to open the variable file and set the variable there



51
52
53
54
55
56
# File 'lib/poolparty/resources/variable.rb', line 51

def print_to_chef
  # Variable
  # TODO: Variable => <%= name %>
  # "poolparty[:#{name}] = #{value}"
  :no_print
end