Thanks to visit codestin.com
Credit goes to www.rubydoc.info

Module: Gem::Deprecate

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_rubygems_major_versionObject

:nodoc:



93
94
95
# File 'lib/rubygems/deprecate.rb', line 93

def self.next_rubygems_major_version # :nodoc:
  Gem::Version.new(Gem.rubygems_version.segments.first).bump
end

.rubygems_deprecate(name, replacement = :none, version = nil) ⇒ Object

Simple deprecation method that deprecates name by wrapping it up in a dummy method. It warns on each call to the dummy method telling the user of repl (unless repl is :none) and the Rubygems version that it is planned to go away.



129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/rubygems/deprecate.rb', line 129

def rubygems_deprecate(name, replacement = :none, version = nil)
  class_eval do
    old = "_deprecated_#{name}"
    alias_method old, name
    define_method name do |*args, &block|
      klass = is_a? Module
      target = klass ? "#{self}." : "#{self.class}#"
      version ||= Gem::Deprecate.next_rubygems_major_version
      msg = [
        "NOTE: #{target}#{name} is deprecated",
        replacement == :none ? " with no replacement" : "; use #{replacement} instead",
        ". It will be removed in Rubygems #{version}",
        "\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
      ]
      warn "#{msg.join}." unless Gem::Deprecate.skip
      send old, *args, &block
    end
    ruby2_keywords name if respond_to?(:ruby2_keywords, true)
  end
end

.rubygems_deprecate_command(version = nil) ⇒ Object

Deprecation method to deprecate Rubygems commands



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/rubygems/deprecate.rb', line 151

def rubygems_deprecate_command(version = nil)
  class_eval do
    define_method "deprecated?" do
      true
    end

    define_method "deprecation_warning" do
      version ||= Gem::Deprecate.next_rubygems_major_version
      msg = [
        "#{command} command is deprecated",
        ". It will be removed in Rubygems #{version}.\n",
      ]

      alert_warning msg.join.to_s unless Gem::Deprecate.skip
    end
  end
end

.skipObject

:nodoc:



74
75
76
# File 'lib/rubygems/deprecate.rb', line 74

def self.skip # :nodoc:
  @skip ||= false
end

.skip=(v) ⇒ Object

:nodoc:



78
79
80
# File 'lib/rubygems/deprecate.rb', line 78

def self.skip=(v) # :nodoc:
  @skip = v
end

.skip_duringObject

Temporarily turn off warnings. Intended for tests only.



85
86
87
88
89
90
91
# File 'lib/rubygems/deprecate.rb', line 85

def skip_during
  original = Gem::Deprecate.skip
  Gem::Deprecate.skip = true
  yield
ensure
  Gem::Deprecate.skip = original
end

Instance Method Details

#deprecate(name, repl, year, month) ⇒ Object

Simple deprecation method that deprecates name by wrapping it up in a dummy method. It warns on each call to the dummy method telling the user of repl (unless repl is :none) and the year/month that it is planned to go away.



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/rubygems/deprecate.rb', line 103

def deprecate(name, repl, year, month)
  class_eval do
    old = "_deprecated_#{name}"
    alias_method old, name
    define_method name do |*args, &block|
      klass = is_a? Module
      target = klass ? "#{self}." : "#{self.class}#"
      msg = [
        "NOTE: #{target}#{name} is deprecated",
        repl == :none ? " with no replacement" : "; use #{repl} instead",
        format(". It will be removed on or after %4d-%02d.", year, month),
        "\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
      ]
      warn "#{msg.join}." unless Gem::Deprecate.skip
      send old, *args, &block
    end
    ruby2_keywords name if respond_to?(:ruby2_keywords, true)
  end
end