class ModelBase
todo:review
Public Class Methods
admin_group()
click to toggle source
properties
# File lib/mrpin/core/base/model_base.rb, line 15 def self.admin_group self.name.underscore.split('_').first end
configure_admin_edit(context, field_name)
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 70 def self.configure_admin_edit(context, field_name) case field_name when :_type, :created_at, :updated_at context.configure field_name do visible false end else context.configure field_name end end
configure_admin_list(context, field_name)
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 20 def self.configure_admin_list(context, field_name) model_class = get_class_by_name(context.abstract_model.model_name) is_mongoid_field = false is_mongoid_relation_field = false if model_class.include?(Mongoid::Document) if model_class.fields.include?(field_name.to_s) is_mongoid_field = true end if model_class.relations.keys.include?(field_name.to_s) is_mongoid_relation_field = true end end if is_mongoid_field && model_class.fields[field_name.to_s].type == Mongoid::Boolean context.configure field_name elsif is_mongoid_relation_field context.configure field_name else case field_name when :_type, /\Auploader_/ context.configure field_name do visible false end when /_at\z/ context.configure field_name do pretty_value do Time.at(value).to_s(:short) unless value.nil? end read_only true end when /\Aurl_/ context.configure field_name do pretty_value do unless value.nil? UtilsAdmin.tag_img(bindings[:view], value, 25, 25) end end end else context.configure field_name do pretty_value { value } end end end end
configure_admin_show(context, field_name)
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 82 def self.configure_admin_show(context, field_name) case field_name when :_type context.configure field_name do visible false end when /_at\z/ context.configure field_name do pretty_value do Time.at(value).to_s(:short) end end when /\Aurl_/ context.configure field_name do pretty_value do UtilsAdmin.tag_img(bindings[:view], value, 100, 100) end end else context.configure field_name end end
filters_for_admin_list(section)
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 115 def self.filters_for_admin_list(section) section.filters [] end
init_scopes()
click to toggle source
scopes
# File lib/mrpin/core/base/model_base.rb, line 124 def self.init_scopes end
new(options = nil)
click to toggle source
default constructor
Calls superclass method
# File lib/mrpin/core/base/model_base.rb, line 147 def initialize(options = nil) super end
sort_by_for_admin_list(section)
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 110 def self.sort_by_for_admin_list(section) section.sort_by :_id end
Protected Class Methods
add_scope(scope_name, criteria)
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 129 def self.add_scope(scope_name, criteria) scope scope_name.to_sym, -> { where(criteria) } end
Public Instance Methods
clone_model()
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 211 def clone_model self.class.new(self.as_json) end
create_info()
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 152 def create_info return nil if class_info.nil? result = class_info.new class_info.attributes.each do |attribute_name| next unless self.respond_to? attribute_name attribute_value = get_attribute_value(attribute_name) result.send("#{attribute_name}=", attribute_value) end result end
create_info_with_check()
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 169 def create_info_with_check return nil if class_info.nil? result = class_info.new class_info.attributes.each do |attribute_name| if (self.respond_to?(attribute_name) && self.has_attribute?(attribute_name)) || attribute_name.to_s == 'id' attribute_value = get_attribute_value(attribute_name) result.send("#{attribute_name}=", attribute_value) end end result end
Protected Instance Methods
class_info()
click to toggle source
Properties
# File lib/mrpin/core/base/model_base.rb, line 138 def class_info @class_info = nil end
get_attribute_value(attribute_name)
click to toggle source
# File lib/mrpin/core/base/model_base.rb, line 187 def get_attribute_value(attribute_name) result = self.send(attribute_name) if result.is_a? (Array) result_array = [] result.each do |attribute_element| if attribute_element.kind_of? (ModelBase) result_array << attribute_element.create_info else result_array << attribute_element end end result = result_array elsif result.kind_of? (ModelBase) result = result.create_info end result end