module GroongaClientModel::Modelize
Public Instance Methods
entry_name(options={})
click to toggle source
For Kaminari
# File lib/groonga_client_model/modelize.rb, line 24 def entry_name(options={}) model_name = @model_class.model_name if options[:count] == 1 default = model_name.human else default = model_name.human.pluralize end model_name.human(options.reverse_merge(default: default)) end
model_class=(model_class)
click to toggle source
# File lib/groonga_client_model/modelize.rb, line 19 def model_class=(model_class) @model_class = model_class end
records()
click to toggle source
Calls superclass method
# File lib/groonga_client_model/modelize.rb, line 34 def records @modelized_records ||= build_records(super) end
Private Instance Methods
build_attributes(columns, raw_record)
click to toggle source
# File lib/groonga_client_model/modelize.rb, line 49 def build_attributes(columns, raw_record) attributes = {} dynamic_attributes = {} raw_record.each do |name, value| primary_name, sub_name = name.split(".", 2) if sub_name.nil? if columns.exist?(primary_name) if attributes.key?(primary_name) value = attributes[primary_name].merge("_key" => value) end attributes[primary_name] = value else dynamic_attributes[primary_name] = value end else if columns.exist?(primary_name) if attributes.key?(primary_name) unless attributes[primary_name].is_a?(Hash) attributes[primary_name] = { "_key" => attributes[primary_name], } end else attributes[primary_name] = {} end attributes[primary_name][sub_name] = value else dynamic_attributes[name] = value end end end [attributes, dynamic_attributes] end
build_records(raw_records)
click to toggle source
# File lib/groonga_client_model/modelize.rb, line 39 def build_records(raw_records) columns = @model_class.columns raw_records.collect do |raw_record| attributes, dynamic_attributes = build_attributes(columns, raw_record) record = @model_class.new(attributes) record.assign_dynamic_attributes(dynamic_attributes) record end end