Module: Chef::Mixin::Deprecation

Included in:
Client, Client, Recipe, Resource
Defined in:
lib/chef/mixin/deprecation.rb

Defined Under Namespace

Classes: DeprecatedInstanceVariable, DeprecatedObjectProxyBase

Instance Method Summary collapse

Instance Method Details

#deprecated_attr(name, alternative) ⇒ Object



97
98
99
100
# File 'lib/chef/mixin/deprecation.rb', line 97

def deprecated_attr(name, alternative)
  deprecated_attr_reader(name, alternative)
  deprecated_attr_writer(name, alternative)
end

#deprecated_attr_reader(name, alternative, level = :warn) ⇒ Object



102
103
104
105
106
107
108
109
110
# File 'lib/chef/mixin/deprecation.rb', line 102

def deprecated_attr_reader(name, alternative, level = :warn)
  define_method(name) do
    Chef.log_deprecation("#{self.class}.#{name} is deprecated. Support will be removed in a future release.")
    Chef.log_deprecation(alternative)
    Chef.log_deprecation("Called from:")
    caller[0..3].each { |c| Chef.log_deprecation(c) }
    instance_variable_get("@#{name}")
  end
end

#deprecated_attr_writer(name, alternative, level = :warn) ⇒ Object



112
113
114
115
116
117
118
119
120
# File 'lib/chef/mixin/deprecation.rb', line 112

def deprecated_attr_writer(name, alternative, level = :warn)
  define_method("#{name}=") do |value|
    Chef.log_deprecation("Writing to #{self.class}.#{name} with #{name}= is deprecated. Support will be removed in a future release.")
    Chef.log_deprecation(alternative)
    Chef.log_deprecation("Called from:")
    caller[0..3].each { |c| Chef.log_deprecation(c) }
    instance_variable_set("@#{name}", value)
  end
end

#deprecated_ivar(obj, name, level = nil) ⇒ Object



93
94
95
# File 'lib/chef/mixin/deprecation.rb', line 93

def deprecated_ivar(obj, name, level = nil)
  DeprecatedInstanceVariable.new(obj, name, level)
end