module MonsterQueries::ActiveRecord

Public Instance Methods

execute(query) click to toggle source
# File lib/monster_queries/active_record.rb, line 5
def execute query
  begin
    self.class.connection.execute query
  rescue
    File.open(Rails.root.join('tmp','failed.sql'), 'w') { |file| file.write(query) }
    Rails.root.join
    raise
  end
end
select_all(query) click to toggle source
# File lib/monster_queries/active_record.rb, line 58
def select_all query
  self.class.connection.select_all query
end
select_array(query) click to toggle source
# File lib/monster_queries/active_record.rb, line 41
    def select_array query
      sql = <<-SQL
        SELECT COALESCE(array_to_json(array_agg(row_to_json(query_row))), '[]'::json)
        FROM (#{query}) query_row
      SQL
      select_value sql
    end
select_json(query, count) click to toggle source
# File lib/monster_queries/active_record.rb, line 33
def select_json query, count
  if count
    select_object query
  else
    select_array query
  end
end
select_object(query) click to toggle source
# File lib/monster_queries/active_record.rb, line 49
    def select_object query
      sql = <<-SQL
        SELECT COALESCE(row_to_json(query_row),'{}'::json)
        FROM (#{query}) query_row
      SQL
      select_value sql
    end
select_value(query) click to toggle source
# File lib/monster_queries/active_record.rb, line 15
def select_value query
  begin
    self.class.connection.select_value query
  rescue
    File.open(Rails.root.join('tmp','failed.sql'), 'w') { |file| file.write(query) }
    raise
  end
end
select_values(query) click to toggle source
# File lib/monster_queries/active_record.rb, line 24
def select_values query
  begin
    self.class.connection.select_values query
  rescue
    File.open(Rails.root.join('tmp','failed.sql'), 'w') { |file| file.write(query) }
    raise
  end
end