summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJay Mundrawala <jdmundrawala@gmail.com>2015-07-01 14:41:01 -0700
committerJay Mundrawala <jdmundrawala@gmail.com>2015-07-01 14:41:01 -0700
commitfc93eb7730112c46a8fbb4c30dbdf3641d142870 (patch)
tree3ffb4328b2c79f0a715dbcb9a8f8ef88a9c7b6b9 /lib
parent398df3f1961b92ee4b06a32b463b9c545851b41d (diff)
parentc01d3934fb914ddbcbdff2de337d0c697785607b (diff)
downloadchef-fc93eb7730112c46a8fbb4c30dbdf3641d142870.tar.gz
Merge pull request #3623 from chef/jdm/simplify-lwrp1
Simplify LWRP Deprecations Proposal 1
Diffstat (limited to 'lib')
-rw-r--r--lib/chef/resource.rb6
-rw-r--r--lib/chef/resource/lwrp_base.rb57
2 files changed, 15 insertions, 48 deletions
diff --git a/lib/chef/resource.rb b/lib/chef/resource.rb
index 7965068037..696089fe3e 100644
--- a/lib/chef/resource.rb
+++ b/lib/chef/resource.rb
@@ -1499,9 +1499,11 @@ class Chef
Chef::Resource.send(:remove_const, class_name)
end
- Chef::Resource.const_set(class_name, resource_class)
+ if !Chef::Config[:treat_deprecation_warnings_as_errors]
+ Chef::Resource.const_set(class_name, resource_class)
+ deprecated_constants[class_name.to_sym] = resource_class
+ end
- deprecated_constants[class_name.to_sym] = resource_class
end
def self.deprecated_constants
diff --git a/lib/chef/resource/lwrp_base.rb b/lib/chef/resource/lwrp_base.rb
index 424efa73d9..443e0ed819 100644
--- a/lib/chef/resource/lwrp_base.rb
+++ b/lib/chef/resource/lwrp_base.rb
@@ -52,52 +52,17 @@ class Chef
resource_name = filename_to_qualified_string(cookbook_name, filename)
# We load the class first to give it a chance to set its own name
- deprecated_resource_class = Class.new(self).tap do |resource_class|
- resource_class.resource_name(nil)
- resource_class.run_context = run_context
- resource_class.instance_eval do
- define_method(:initialize) do |*args, &block|
- Chef::Log::deprecation("Deprecated Thing") if chef_deprecated_access
- super(*args, &block)
- end
- define_method(:chef_deprecated_access) do
- true
- end
- end
-
- resource_class.class_from_file(filename)
-
- # Make a useful string for the class (rather than <Class:312894723894>)
- resource_class.instance_eval do
- define_singleton_method(:to_s) do
- "LWRP resource #{resource_name} from cookbook #{cookbook_name}"
- end
- define_singleton_method(:inspect) { to_s }
- end
- end
-
- resource_class = Class.new(deprecated_resource_class).tap do |resource_class|
- resource_class.resource_name(resource_name.to_sym)
- resource_class.run_context = run_context
- resource_class.instance_eval do
- define_method(:chef_deprecated_access) do
- false
- end
- end
- resource_class.class_eval do
- define_singleton_method(:===) do |instance|
- super(instance) || instance.class <= deprecated_resource_class
- end
- end
- end
-
- deprecated_resource_class.class_eval do
- define_method(:kind_of?) do |klass|
- super(klass) || klass == resource_class
- end
- define_method(:is_a?) do |klass|
- super(klass) || klass == resource_class
+ resource_class = Class.new(self)
+ resource_class.resource_name resource_name.to_sym
+ resource_class.run_context = run_context
+ resource_class.class_from_file(filename)
+
+ # Make a useful string for the class (rather than <Class:312894723894>)
+ resource_class.instance_eval do
+ define_singleton_method(:to_s) do
+ "LWRP resource #{resource_name} from cookbook #{cookbook_name}"
end
+ define_singleton_method(:inspect) { to_s }
end
Chef::Log.debug("Loaded contents of #{filename} into resource #{resource_name} (#{resource_class})")
@@ -105,7 +70,7 @@ class Chef
LWRPBase.loaded_lwrps[filename] = true
# Create the deprecated Chef::Resource::LwrpFoo class
- Chef::Resource.register_deprecated_lwrp_class(deprecated_resource_class, convert_to_class_name(resource_name))
+ Chef::Resource.register_deprecated_lwrp_class(resource_class, convert_to_class_name(resource_name))
resource_class
end