45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/chef/resource/lwrp_base.rb', line 45
def build_from_file(cookbook_name, filename, run_context)
if LWRPBase.loaded_lwrps[filename]
Chef::Log.trace("Custom resource #{filename} from cookbook #{cookbook_name} has already been loaded! Skipping the reload.")
return loaded_lwrps[filename]
end
resource_name = filename_to_qualified_string(cookbook_name, filename)
resource_class = Class.new(self)
resource_class.run_context = run_context
resource_class.class_from_file(filename)
resource_class.instance_eval do
define_singleton_method(:to_s) do
"Custom resource #{resource_name} from cookbook #{cookbook_name}"
end
define_singleton_method(:inspect) { to_s }
end
Chef::Log.trace("Loaded contents of #{filename} into resource #{resource_name} (#{resource_class})")
resource_class.provides resource_name.to_sym unless Chef::ResourceResolver.includes_handler?(resource_name.to_sym, self)
LWRPBase.loaded_lwrps[filename] = resource_class
resource_class
end
|