Module: TuneMyQuery::ClassMethods
- Defined in:
- lib/tune_my_query/tune_my_query.rb
Overview
# Adds tune_my_query method to ActiveRecord and its subclasses. #
#
USAGE: #
tune_my_query :like #
#
‘like’ signifies the command to be invoked. # It also makes it apparent that an extension to LIKE needs to be standardise. Works only for # PostgreSQL specfific extensions. If MySql were to add its own extension to the standard SQL then # this gem would cease to work. #
#
METHODS: #
#
tune_my_query - Adds the command_type to to an instance variable namely, @command_type #
#
standardise_sql - Checks if PostgreSQLAdapter is used only then runs the conditions through the #
Command. if not leaves the conditions untouched #
#
#
Instance Method Summary collapse
Instance Method Details
#standardise_sql(*conditions) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/tune_my_query/tune_my_query.rb', line 38 def standardise_sql(*conditions) if @command_type conditions = conditions.dup @adapter = connection && !connection.class.to_s.include?("PostgreSQLAdapter") command = "#{@command_type.to_s.camelize}Command".constantize if @adapter conditions.each { |condition| command.execute(condition) } end end super_where(*conditions) end |
#tune_my_query(command_type) ⇒ Object
34 35 36 |
# File 'lib/tune_my_query/tune_my_query.rb', line 34 def tune_my_query(command_type) @command_type = command_type end |