Sha256: 960e5e12fd91db6c88ebf77c9a0b03b3734232f0d1900f54bbf2678dca85699a

Contents?: true

Size: 868 Bytes

Versions: 1

Compression:

Stored size: 868 Bytes

Contents

# encoding: utf-8

module Dusen
  module Util
    extend self

    def like_expression(phrase)
      "%#{escape_for_like_query(phrase)}%"
    end

    def escape_for_like_query(phrase)
      phrase.gsub("%", "\\%").gsub("_", "\\_")
    end

    def qualify_column_name(model, column_name)
      column_name = column_name.to_s
      unless column_name.include?('.')
        quoted_table_name = model.connection.quote_table_name(model.table_name)
        quoted_column_name = model.connection.quote_column_name(column_name)
        column_name = "#{quoted_table_name}.#{quoted_column_name}"
      end
      column_name
    end

    def append_scope_conditions(scope, conditions)
      if scope.respond_to?(:where)
        # Rails 3
        scope.where(conditions)
      else
        # Rails 2
        scope.scoped(:conditions => conditions)
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dusen-0.2.2 lib/dusen/util.rb