lib/faat/resources/base.rb in faat-0.1.4 vs lib/faat/resources/base.rb in faat-0.1.5
- old
+ new
@@ -1,68 +1,15 @@
# root module Faat
module Faat
# Faat::Resources resources module
module Resources
# Faat::Resources::Base default resource class
- class Base
+ class Base < Faat::FaatObject
# Your classes must inherited from this Base class
# for removing all business logic from models classes,
# and controllers
# Right now you can use one resources for one model,
# TODO: implement resources logic for working with coup of models
-
- 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
-
- # initialize :method_missing for ActiveRecord methods
- # like :save, :valid?, :destroy and others
-
- def method_missing(name, *attr, &block)
- # getting resource by instance variable :resource_name
- resource.send(name, *attr, &block) || super
- end
-
- # initialize :respond_to_missing? method for working with
- # ActiveRecord instance methods
-
- 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
-
- # add class methods form resource class
- class << self
- # singleton method :method_missing
- 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
-
- 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
- end
-
- private
-
- def resource
- instance_variable_get("@#{@resource_name}")
- end
end
end
end