class Footing::Object

Attributes

copied_object[R]
original_object[R]

Public Class Methods

match?(o) click to toggle source
# File lib/footing/object.rb, line 10
def match?(o)
  o.class.ancestors.map(&:name).include?(target_name)
end
new(o) click to toggle source
Calls superclass method
# File lib/footing/object.rb, line 14
def new(o)
  return o if o.is_a?(self)
  super
end
new(o) click to toggle source
# File lib/footing/object.rb, line 20
def initialize(o)
  raise ArgumentError.new("Types must match") unless self.class.match?(o)
  @original_object = o
  @copied_object = o.dup
end
target_name() click to toggle source
# File lib/footing/object.rb, line 6
def target_name
  self.name.gsub(/\AFooting::/, "")
end

Public Instance Methods

method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/footing/object.rb, line 26
def method_missing(name, *args)
  if copied_object.respond_to?(name)
    return copied_object.send name, *args
  end

  super
end
respond_to?(name) click to toggle source
Calls superclass method
# File lib/footing/object.rb, line 34
def respond_to?(name)
  return true if copied_object.respond_to?(name)
  super
end