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