class One9::Method

Attributes

klass[RW]
message[RW]
meth[RW]
name[RW]
type[RW]

Public Class Methods

any_const_get(name) click to toggle source
# File lib/one9/method.rb, line 4
def self.any_const_get(name)
  return name if name.is_a?(Module)
  begin
    klass = Object
    name.split('::').each {|e|
      klass = klass.const_get(e)
    }
    klass
  rescue
     nil
  end
end
new(name, options={}) click to toggle source
# File lib/one9/method.rb, line 17
def initialize(name, options={})
  @name = name.to_s[/[.#]/] ? name :
    options[:class] ? options[:class] + name :
    raise(ArgumentError, "Method '#{name}' has an invalid name")
  @klass, @meth = @name.split(/[.#]/, 2)
  @message, @type = options.values_at(:message, :type)
  @message ||= @type == :delete ? "This method does not exist in 1.9" :
    "This method has different behavior in 1.9"
end

Public Instance Methods

class_method?() click to toggle source
# File lib/one9/method.rb, line 36
def class_method?
  @name.include?('.')
end
exists?() click to toggle source
# File lib/one9/method.rb, line 31
def exists?
  obj = class_method? ? (class << real_klass; self end) : real_klass
  obj.method_defined?(meth) || obj.private_method_defined?(meth)
end
real_klass() click to toggle source
# File lib/one9/method.rb, line 27
def real_klass
  @real_klass ||= self.class.any_const_get(@klass)
end