class Rimportor::ActiveRecord::SqlBuilder

Public Class Methods

new(model) click to toggle source
# File lib/rimportor/active_record/sql_builder.rb, line 5
def initialize(model)
  @model = model
  set_timestamps
end

Public Instance Methods

arel_for_create() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/rimportor/active_record/sql_builder.rb, line 24
def insert_manager
  @model.class.arel_table.create_insert
end
partial_insert_statement() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/rimportor/active_record/sql_builder.rb, line 28
def set_timestamps
  set_created_at
  set_updated_at
end
set_updated_at() click to toggle source
# 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