class ActiveRecordImporter::Attribute::AttributesBuilder
Attributes
importable[R]
processed_attrs[R]
row_attrs[R]
Public Class Methods
new(importable, row_attrs)
click to toggle source
# File lib/active_record_importer/attribute/attributes_builder.rb, line 14 def initialize(importable, row_attrs) @importable = importable @row_attrs = row_attrs @processed_attrs = {} end
Public Instance Methods
build()
click to toggle source
# File lib/active_record_importer/attribute/attributes_builder.rb, line 20 def build force_encode_attributes fetch_time_attributes processed_attrs end
Private Instance Methods
default_attrs()
click to toggle source
# File lib/active_record_importer/attribute/attributes_builder.rb, line 28 def default_attrs def_attrs = { importing: true } default_attributes.each do |key, value| def_attrs[key] = fetch_value(value) end end
fetch_time_attributes()
click to toggle source
# File lib/active_record_importer/attribute/attributes_builder.rb, line 39 def fetch_time_attributes @processed_attrs.merge!(time_attributes(processed_attrs)) end
fetch_value(value)
click to toggle source
# File lib/active_record_importer/attribute/attributes_builder.rb, line 43 def fetch_value(value) case value when Proc value.call(row_attrs) when Symbol importable.send(value, row_attrs) else value end end
force_encode_attributes()
click to toggle source
# File lib/active_record_importer/attribute/attributes_builder.rb, line 35 def force_encode_attributes @processed_attrs = force_utf8_encode(merged_attributes) end
has_column?(column)
click to toggle source
# File lib/active_record_importer/attribute/attributes_builder.rb, line 63 def has_column?(column) return if column.blank? importable_columns.include?(column.to_sym) end
merged_attributes()
click to toggle source
# File lib/active_record_importer/attribute/attributes_builder.rb, line 54 def merged_attributes attributes = row_attrs.slice(*importable_columns) row_attrs = attributes.inject({}) do |row_attrs, key_value| row_attrs[key_value.first] = key_value.last if key_value.last.present? row_attrs end default_attrs.merge(row_attrs) end