class Predefined::ActiveRecordQuery

Public Instance Methods

connection() click to toggle source
# File lib/predefined/active_record.rb, line 9
def connection
  Database.connection
end
result_to_rows(result) click to toggle source

TODO: Is there a way to do this built-in to ActiveRecord?

# File lib/predefined/active_record.rb, line 51
def result_to_rows(result)
  result.rows.map do |row|
    typed_row = result.columns.zip(row).map do |column_name, value|
      typed_value = result.column_types[column_name].send(:type_cast, value)
      [column_name.to_sym, typed_value]
    end
    Hash[typed_row]
  end
end
select_all(params=nil) click to toggle source
# File lib/predefined/active_record.rb, line 17
def select_all(params=nil)
  result_to_rows(connection.select_all(to_sql(params), name))
end
select_object(klass, params=nil) click to toggle source
# File lib/predefined/active_record.rb, line 37
def select_object(klass, params=nil)
  record = connection.select_one(to_sql(params), name)
  if record
    klass.new(record)
  end
end
select_objects(klass, params=nil) click to toggle source
# File lib/predefined/active_record.rb, line 44
def select_objects(klass, params=nil)
  connection.select_all(to_sql(params), name).map do |row|
    klass.new(row)
  end
end
select_one(params=nil) click to toggle source
# File lib/predefined/active_record.rb, line 21
def select_one(params=nil)
  select_all(params).first
end
select_rows(params=nil) click to toggle source
# File lib/predefined/active_record.rb, line 25
def select_rows(params=nil)
  connection.select_rows(to_sql(params), name)
end
select_value(params=nil) click to toggle source
# File lib/predefined/active_record.rb, line 33
def select_value(params=nil)
  connection.select_value(to_sql(params), name)
end
select_values(params=nil) click to toggle source
# File lib/predefined/active_record.rb, line 29
def select_values(params=nil)
  connection.select_values(to_sql(params), name)
end
to_sql(params=nil) click to toggle source
# File lib/predefined/active_record.rb, line 13
def to_sql(params=nil)
  Database.send(:sanitize_sql, [template, params])
end