Class: DbSpiderWriterNode
- Inherits:
-
Object
- Object
- DbSpiderWriterNode
- Defined in:
- lib/db_facet/db_spider_writer_node.rb
Instance Method Summary collapse
- #data ⇒ Object
- #id ⇒ Object
- #id=(v) ⇒ Object
-
#initialize(reader_node) ⇒ DbSpiderWriterNode
constructor
A new instance of DbSpiderWriterNode.
- #insert_data ⇒ Object
- #model ⇒ Object
- #pk ⇒ Object
- #reflection_nodes ⇒ Object
- #reflections ⇒ Object
- #t_cols ⇒ Object
- #t_data ⇒ Object
- #t_fk ⇒ Object
- #t_model ⇒ Object
- #update_columns(atts) ⇒ Object
Constructor Details
#initialize(reader_node) ⇒ DbSpiderWriterNode
Returns a new instance of DbSpiderWriterNode.
3 4 5 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 3 def initialize reader_node @r_node = reader_node end |
Instance Method Details
#data ⇒ Object
37 38 39 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 37 def data @r_node[:data] end |
#id ⇒ Object
11 12 13 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 11 def id data[pk] end |
#id=(v) ⇒ Object
7 8 9 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 7 def id=(v) data[pk] = v end |
#insert_data ⇒ Object
41 42 43 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 41 def insert_data data.slice *model.column_names end |
#model ⇒ Object
15 16 17 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 15 def model @model ||= @r_node[:class_name].constantize end |
#pk ⇒ Object
19 20 21 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 19 def pk model.primary_key end |
#reflection_nodes ⇒ Object
27 28 29 30 31 32 33 34 35 |
# 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 ⇒ Object
23 24 25 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 23 def reflections @r_node[:reflections] end |
#t_cols ⇒ Object
60 61 62 |
# 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 ⇒ Object
45 46 47 48 49 50 |
# 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 ⇒ Object
52 53 54 |
# 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 ⇒ Object
56 57 58 |
# File 'lib/db_facet/db_spider_writer_node.rb', line 56 def t_model @t_model ||= model.translation_class end |
#update_columns(atts) ⇒ Object
64 65 66 67 |
# 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 |