class Faat::FaatObject

base FaatClass, in this class made, by the main logic of this class of objects, inherited basic resources and services

Public Class Methods

method_missing(name, *attr, &block) click to toggle source

singleton method :method_missing

Calls superclass method
# File lib/faat/faat_object/faat_object.rb, line 38
def method_missing(name, *attr, &block)
  # initialize :method_missing for accessing for
  # ActiveRecord model class_methods
  class_eval do
    @class_name.constantize.send(name, *attr, &block) || super
  end
end
new(resource) click to toggle source
# File lib/faat/faat_object/faat_object.rb, line 7
def initialize(resource)
  # setup resource name for accessing from other methods
  @resource_name = resource.class.name.underscore

  # setup :attr_accessor for resource attributes
  self.class.send(:attr_accessor, resource.class.name.underscore)
  # setup :class_name for resource class
  self.class.class_eval { @class_name = resource.class.name }
  instance_variable_set("@#{resource.class.name.underscore}", resource)
end
respond_to_missing?(name, include_private = false) click to toggle source
Calls superclass method
# File lib/faat/faat_object/faat_object.rb, line 46
def respond_to_missing?(name, include_private = false)
  # getting respond_to? access to ActiveRecord model class_methods
  class_eval do
    @class_name.constantize.respond_to?(name) || super
  end
end

Public Instance Methods

method_missing(name, *attr, &block) click to toggle source

initialize :method_missing for ActiveRecord methods like :save, :valid?, :destroy and others

Calls superclass method
# File lib/faat/faat_object/faat_object.rb, line 21
def method_missing(name, *attr, &block)
  # getting resource by instance variable :resource_name
  resource.send(name, *attr, &block) || super
end
respond_to_missing?(name, include_private = false) click to toggle source

initialize :respond_to_missing? method for working with ActiveRecord instance methods

Calls superclass method
# File lib/faat/faat_object/faat_object.rb, line 29
def respond_to_missing?(name, include_private = false)
  # getting resource by instance variable :resource_name,
  # for :respond_to? method
  resource.respond_to?(name) || super
end

Private Instance Methods

resource() click to toggle source
# File lib/faat/faat_object/faat_object.rb, line 56
def resource
  instance_variable_get("@#{@resource_name}")
end