Module: Couchbase::Deprecations

Defined in:
lib/couchbase/deprecations.rb

Class Method Summary collapse

Class Method Details

.deprecate_constants(removed_in_version, parent, constants) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/couchbase/deprecations.rb', line 19

def self.deprecate_constants(removed_in_version, parent, constants)
  deprecator = Module.new do
    define_method(:const_missing) do |old_name|
      return super unless constants.key?(old_name)

      new_name = constants[old_name]

      warn "NOTE: #{name}::#{old_name} is deprecated; use Couchbase::#{new_name} instead. " \
           "It will be removed in version #{removed_in_version}."
      Couchbase.const_get(new_name)
    end
  end
  parent.singleton_class.prepend(deprecator)
end