Sha256: c04490c3decaf9e33b701052a1fe6d28cdad76f5e6e25b76bf9080a62db7aab1

Contents?: true

Size: 938 Bytes

Versions: 8

Compression:

Stored size: 938 Bytes

Contents

require 'digest'

module PgSearch
  class Configuration
    class Column
      attr_reader :weight, :association

      def initialize(column_name, weight, model, association = nil)
        @column_name = column_name.to_s
        @weight = weight
        @model = model
        @association = association
      end

      def table
        foreign? ? @association.table_name : @model.table_name
      end

      def full_name
        "#{@model.connection.quote_table_name(table)}.#{@model.connection.quote_column_name(@column_name)}"
      end

      def to_sql
        name = if foreign?
                 "#{@association.subselect_alias}.#{self.alias}"
               else
                 full_name
               end
        "coalesce(#{name}, '')"
      end

      def foreign?
        @association.present?
      end

      def alias
        Configuration.alias(association.subselect_alias, @column_name)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pg_search-0.4.2 lib/pg_search/configuration/column.rb
pg_search-0.4.1 lib/pg_search/configuration/column.rb
pg_search-0.4 lib/pg_search/configuration/column.rb
pg_search-0.3.4 lib/pg_search/configuration/column.rb
pg_search-0.3.3 lib/pg_search/configuration/column.rb
pg_search-0.3.2 lib/pg_search/configuration/column.rb
pg_search-0.3.1 lib/pg_search/configuration/column.rb
pg_search-0.3 lib/pg_search/configuration/column.rb