Class: Rimportor::ActiveRecord::SqlBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/rimportor/active_record/sql_builder.rb

Instance Method Summary collapse

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
  set_timestamps
end

Instance Method Details

#arel_for_createObject



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_statementObject



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_managerObject



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_statementObject



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_atObject



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_timestampsObject



28
29
30
31
# File 'lib/rimportor/active_record/sql_builder.rb', line 28

def set_timestamps
  set_created_at
  set_updated_at
end

#set_updated_atObject



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