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