def build_from_file(cookbook_name, filename)
pname = filename_to_qualified_string(cookbook_name, filename)
class_name = convert_to_class_name(pname)
overriding = Chef::Provider.const_defined?(class_name)
Chef::Log.info("#{class_name} light-weight provider already initialized -- overriding!") if overriding
new_provider_class = Class.new self do |cls|
def load_current_resource
end
class << cls
include Chef::Mixin::FromFile
def action(name, &block)
define_method("action_#{name.to_s}") do
instance_eval(&block)
end
end
end
cls.class_from_file(filename)
end
pname = filename_to_qualified_string(cookbook_name, filename)
class_name = convert_to_class_name(pname)
Chef::Provider.const_set(class_name, new_provider_class)
Chef::Log.debug("Loaded contents of #{filename} into a provider named #{pname} defined in Chef::Provider::#{class_name}")
new_provider_class
end