module Faker::Deprecator
def self.included(base)
def self.included(base) extension = Module.new do def const_missing(missing_const_name) if class_variable_defined?(:@@_deprecated_constants) && (replacement = class_variable_get(:@@_deprecated_constants)[missing_const_name.to_s]) unless Faker::Deprecator.skip_warning? deprecated_message = "#{name}::#{replacement[:old_generator]} is deprecated." replacement_message = "Use #{replacement[:new_constant]} instead." $stdout.puts("DEPRECATION WARNING: #{deprecated_message} #{replacement_message}") end return replacement[:new_constant] end super end def deprecate_generator(old_generator_name, new_generator_constant) class_variable_set(:@@_deprecated_constants, {}) unless class_variable_defined?(:@@_deprecated_constants) class_variable_get(:@@_deprecated_constants)[old_generator_name] = { new_constant: new_generator_constant, old_generator: old_generator_name } end end base.singleton_class.prepend extension end