module Chef::Mixin::Deprecation
def deprecated_attr(name, alternative)
def deprecated_attr(name, alternative) deprecated_attr_reader(name, alternative) deprecated_attr_writer(name, alternative) end
def deprecated_attr_reader(name, alternative, level = :warn)
def deprecated_attr_reader(name, alternative, level = :warn) define_method(name) do Chef.deprecated(:internal_api, "#{self.class}.#{name} is deprecated. Support will be removed in a future release. #{alternative}") instance_variable_get("@#{name}") end end
def deprecated_attr_writer(name, alternative, level = :warn)
def deprecated_attr_writer(name, alternative, level = :warn) define_method("#{name}=") do |value| Chef.deprecated(:internal_api, "Writing to #{self.class}.#{name} with #{name}= is deprecated. Support will be removed in a future release. #{alternative}") instance_variable_set("@#{name}", value) end end
def deprecated_ivar(obj, name, level = nil)
def deprecated_ivar(obj, name, level = nil) DeprecatedInstanceVariable.new(obj, name, level) end