Method: Chef::Resource::LWRPBase.build_from_file

Defined in:
lib/chef/resource/lwrp_base.rb

.build_from_file(cookbook_name, filename, run_context) ⇒ Object

Evaluates the LWRP resource file and instantiates a new Resource class.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/chef/resource/lwrp_base.rb', line 37

def self.build_from_file(cookbook_name, filename, run_context)
  rname = filename_to_qualified_string(cookbook_name, filename)

  # Add log entry if we override an existing light-weight resource.
  class_name = convert_to_class_name(rname)
  overriding = Chef::Resource.const_defined?(class_name)
  Chef::Log.info("#{class_name} light-weight resource already initialized -- overriding!") if overriding

  resource_class = Class.new(self)

  resource_class.resource_name = rname
  resource_class.run_context = run_context
  resource_class.class_from_file(filename)

  Chef::Resource.const_set(class_name, resource_class)
  Chef::Log.debug("Loaded contents of #{filename} into a resource named #{rname} defined in Chef::Resource::#{class_name}")

  resource_class
end