mirror of
https://github.com/rapid7/metasploitable3.git
synced 2024-07-04 02:35:58 +02:00
126949ce19
This reverts commit 50a8a91c71
.
57 lines
1.7 KiB
Ruby
57 lines
1.7 KiB
Ruby
require 'chef_compat/monkeypatches'
|
|
require 'chef_compat/copied_from_chef/chef/resource'
|
|
|
|
# We do NOT want action defined if chefspec is engaged
|
|
if Chef::Provider::InlineResources::ClassMethods.instance_method(:action).source_location[0] =~ /chefspec/
|
|
ChefCompat::CopiedFromChef::Chef::Provider::InlineResources::ClassMethods.instance_eval do
|
|
remove_method(:action)
|
|
end
|
|
end
|
|
|
|
module ChefCompat
|
|
class Resource < ChefCompat::CopiedFromChef::Chef::Resource
|
|
def initialize(*args, &block)
|
|
super
|
|
# @resource_name is used in earlier Chef versions
|
|
@resource_name = self.class.resource_name
|
|
end
|
|
# Things we'll need to define ourselves:
|
|
# 1. provider
|
|
# 2. resource_name
|
|
|
|
def provider(*args, &block)
|
|
super || self.class.action_class
|
|
end
|
|
def provider=(arg)
|
|
provider(arg)
|
|
end
|
|
|
|
if !respond_to?(:resource_name)
|
|
def self.resource_name(name=Chef::NOT_PASSED)
|
|
# Setter
|
|
if name != Chef::NOT_PASSED
|
|
# remove_canonical_dsl
|
|
|
|
# Set the resource_name and call provides
|
|
if name
|
|
name = name.to_sym
|
|
# If our class is not already providing this name, provide it.
|
|
# Commented out: use of resource_name and provides will need to be
|
|
# mutually exclusive in this world, generally.
|
|
# if !Chef::ResourceResolver.includes_handler?(name, self)
|
|
provides name#, canonical: true
|
|
# end
|
|
@resource_name = name
|
|
else
|
|
@resource_name = nil
|
|
end
|
|
end
|
|
@resource_name
|
|
end
|
|
def self.resource_name=(name)
|
|
resource_name(name)
|
|
end
|
|
end
|
|
end
|
|
end
|