Class: Rimportor::ActiveRecord::SqlBuilder
- Inherits:
-
Object
- Object
- Rimportor::ActiveRecord::SqlBuilder
- Defined in:
- lib/rimportor/active_record/sql_builder.rb
Instance Method Summary collapse
- #arel_for_create ⇒ Object
- #full_insert_statement ⇒ Object
-
#initialize(model) ⇒ SqlBuilder
constructor
A new instance of SqlBuilder.
- #insert_manager ⇒ Object
- #partial_insert_statement ⇒ Object
- #set_created_at ⇒ Object
- #set_timestamps ⇒ Object
- #set_updated_at ⇒ Object
Constructor Details
#initialize(model) ⇒ SqlBuilder
Returns a new instance of SqlBuilder.
5 6 7 8 |
# File 'lib/rimportor/active_record/sql_builder.rb', line 5 def initialize(model) @model = model end |
Instance Method Details
#arel_for_create ⇒ Object
20 21 22 |
# File 'lib/rimportor/active_record/sql_builder.rb', line 20 def arel_for_create @model.send(:arel_attributes_with_values_for_create, @model.attribute_names) end |
#full_insert_statement ⇒ Object
10 11 12 13 14 |
# File 'lib/rimportor/active_record/sql_builder.rb', line 10 def full_insert_statement insert_manager.tap do |im| im.insert(arel_for_create) end.to_sql end |
#insert_manager ⇒ Object
24 25 26 |
# File 'lib/rimportor/active_record/sql_builder.rb', line 24 def insert_manager @model.class.arel_table.create_insert end |
#partial_insert_statement ⇒ Object
16 17 18 |
# File 'lib/rimportor/active_record/sql_builder.rb', line 16 def partial_insert_statement insert_manager.insert(arel_for_create).to_sql end |
#set_created_at ⇒ Object
33 34 35 |
# File 'lib/rimportor/active_record/sql_builder.rb', line 33 def set_created_at @model.updated_at = Time.zone.now if @model.respond_to? :updated_at end |
#set_timestamps ⇒ Object
28 29 30 31 |
# File 'lib/rimportor/active_record/sql_builder.rb', line 28 def set_created_at set_updated_at end |
#set_updated_at ⇒ Object
37 38 39 |
# File 'lib/rimportor/active_record/sql_builder.rb', line 37 def set_updated_at @model.created_at = Time.zone.now if @model.respond_to? :created_at end |