Module: Faker::Deprecator

Included in:
Faker, JapaneseMedia
Defined in:
lib/helpers/deprecator.rb

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/helpers/deprecator.rb', line 9

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?
          $stdout.puts("DEPRECATION WARNING: #{name}::#{replacement[:old_generator]} is deprecated. Use #{replacement[:new_constant]} instead.")
        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

.skipObject



44
45
46
# File 'lib/helpers/deprecator.rb', line 44

def self.skip
  @skip ||= false
end

.skip=(value) ⇒ Object



48
49
50
# File 'lib/helpers/deprecator.rb', line 48

def self.skip=(value)
  @skip = value
end

.skip_warningObject



32
33
34
35
36
37
38
# File 'lib/helpers/deprecator.rb', line 32

def self.skip_warning
  original = Faker::Deprecator.skip
  Faker::Deprecator.skip = true
  yield
ensure
  Faker::Deprecator.skip = original
end

.skip_warning?Boolean

Returns:



40
41
42
# File 'lib/helpers/deprecator.rb', line 40

def self.skip_warning?
  skip == true
end