diff options
author | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-07-01 14:41:01 -0700 |
---|---|---|
committer | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-07-01 14:41:01 -0700 |
commit | fc93eb7730112c46a8fbb4c30dbdf3641d142870 (patch) | |
tree | 3ffb4328b2c79f0a715dbcb9a8f8ef88a9c7b6b9 /lib | |
parent | 398df3f1961b92ee4b06a32b463b9c545851b41d (diff) | |
parent | c01d3934fb914ddbcbdff2de337d0c697785607b (diff) | |
download | chef-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.rb | 6 | ||||
-rw-r--r-- | lib/chef/resource/lwrp_base.rb | 57 |
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 |