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