class DbSpiderWriterNode

Public Class Methods

new(reader_node) click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 3
def initialize reader_node
  @r_node = reader_node
end

Public Instance Methods

data() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 37
def data
  @r_node[:data]
end
id() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 11
def id
  data[pk]
end
id=(v) click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 7
def id=(v)
  data[pk] = v
end
insert_data() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 41
def insert_data
  data.slice *model.column_names
end
model() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 15
def model
  @model ||= @r_node[:class_name].constantize
end
pk() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 19
def pk
  model.primary_key
end
reflection_nodes() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 27
def reflection_nodes
  rn = {}
  reflections.each_pair do |ref_name, reader_nodes|
    rn[model.reflections[ref_name]] = reader_nodes.map{|reader_node|
      DbSpiderWriterNode.new reader_node
    }
  end
  rn
end
reflections() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 23
def reflections
  @r_node[:reflections]
end
t_cols() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 60
def t_cols
  @t_cols ||= model.translated_attribute_names.map &:to_s
end
t_data() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 45
def t_data
  data.slice(*t_cols).merge(
    locale: 'pt-BR',
    t_fk => id
  )
end
t_fk() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 52
def t_fk
  @t_fk ||= t_model.reflections[:globalized_model].foreign_key
end
t_model() click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 56
def t_model
  @t_model ||= model.translation_class
end
update_columns(atts) click to toggle source
# File lib/db_facet/db_spider_writer_node.rb, line 64
def update_columns atts
  raise "Trying to update record without primary key: #{model} #{atts}" if id.blank?
  model.where(id: id).update_columns atts
end