diff options
author | Steven Danna <steve@opscode.com> | 2014-12-11 12:24:08 +0000 |
---|---|---|
committer | Bryan McLellan <btm@opscode.com> | 2015-02-17 08:46:37 -0500 |
commit | b497289183b6696f5da838274e57c08fbd6c4872 (patch) | |
tree | cc72c0fd29911d24033b90fe7962e36092d8faae /lib/chef/resource/file | |
parent | 55b6e39b2191de3a743abc229951e17373638eed (diff) | |
download | chef-b497289183b6696f5da838274e57c08fbd6c4872.tar.gz |
Use Chef::Mixin::DescendantsTracker to track registered verifications
Diffstat (limited to 'lib/chef/resource/file')
-rw-r--r-- | lib/chef/resource/file/verification.rb | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/chef/resource/file/verification.rb b/lib/chef/resource/file/verification.rb index 5e75cbf6a7..a1dec3c17f 100644 --- a/lib/chef/resource/file/verification.rb +++ b/lib/chef/resource/file/verification.rb @@ -17,6 +17,7 @@ # require 'chef/exceptions' +require 'chef/mixin/descendants_tracker' class Chef class Resource @@ -48,7 +49,7 @@ class Chef # class Chef # class Resource # class File::Verification::Foo < Chef::Resource::File::Verification - # register :noop + # provides :noop # def verify(path, opts) # #yolo # true @@ -60,18 +61,22 @@ class Chef # class Verification - @@registered_verifications = {} + extend Chef::Mixin::DescendantsTracker - def self.register(name) - @@registered_verifications[name] = self.name + def self.provides(name) + @provides = name + end + + def self.provides?(name) + @provides == name end def self.lookup(name) - c = @@registered_verifications[name] + c = descendants.find {|d| d.provides?(name) } if c.nil? raise Chef::Exceptions::VerificationNotFound.new "No file verification for #{name} found." end - Object.const_get(c) + c end def initialize(parent_resource, command, opts, &block) |