class RademadeAdmin::Model::Reflection

Constants

ORM_TYPE_ACTIVERECORD
ORM_TYPE_MONGOID

Attributes

controller[R]
model[R]
module_name[R]

Public Class Methods

new(model, controller, module_name) click to toggle source
# File lib/rademade_admin/model/reflection.rb, line 10
def initialize(model, controller, module_name)
  @model, @controller, @module_name = model, controller, module_name
end

Public Instance Methods

data_adapter() click to toggle source

Load data adapter for current model

@return [RademadeAdmin::Model::Adapter::Data]

# File lib/rademade_admin/model/reflection.rb, line 17
def data_adapter
  @data_adapter ||= "RademadeAdmin::Model::Adapter::Data::#{orm_type}".constantize.new(@model)
end
hideable?() click to toggle source
# File lib/rademade_admin/model/reflection.rb, line 28
def hideable?
  _model_ancestors.include? RademadeAdmin::Hideable.name
end
query_adapter() click to toggle source

Load query adapter for current model

@return [RademadeAdmin::Model::Adapter::Query]

# File lib/rademade_admin/model/reflection.rb, line 24
def query_adapter
  @query_adapter ||= "RademadeAdmin::Model::Adapter::Query::#{orm_type}".constantize.new(@model)
end

Protected Instance Methods

_model_ancestors() click to toggle source
# File lib/rademade_admin/model/reflection.rb, line 34
def _model_ancestors
  @model_ancestors = @model.ancestors.map(&:to_s)
end
orm_list() click to toggle source
# File lib/rademade_admin/model/reflection.rb, line 46
def orm_list
  @orm_list ||= {
    'ActiveRecord::Base' => ORM_TYPE_ACTIVERECORD,
    'Mongoid::Document' => ORM_TYPE_MONGOID
  }
end
orm_type() click to toggle source
# File lib/rademade_admin/model/reflection.rb, line 38
def orm_type
  return @orm_type unless @orm_type.nil?
  orm_list.each do |orm_class, orm_type|
    @orm_type = orm_type if _model_ancestors.include? orm_class
  end
  @orm_type
end