Sha256: a56b470ec79a4842535ebd1c0d693edef89631c4dd1e86d7752ef0acbd998100

Contents?: true

Size: 917 Bytes

Versions: 6

Compression:

Stored size: 917 Bytes

Contents

module FreshConnection
  module Extend
    module ArRelation
      module ForRails
        def pluck(column_name)
          if column_name.is_a?(Symbol) && column_names.include?(column_name.to_s)
            column_name = "#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column_name)}"
          end

          result = @klass.manage_access(enable_slave_access) do
            klass.connection.select_all(select(column_name).arel, nil)
          end

          return result if result.nil? || result.empty?

          last_columns = result.last.keys.last

          result.map do |attributes|
            klass.type_cast_attribute(last_columns, klass.initialize_attributes(attributes))
          end
        end

        def read_master
          relation = clone
          relation.instance_variable_set("@read_from_master", true)
          relation
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fresh_connection-0.4.4 lib/fresh_connection/extend/ar_relation/for_rails3.rb
fresh_connection-1.0.1 lib/fresh_connection/extend/ar_relation/for_rails3.rb
fresh_connection-1.0.0 lib/fresh_connection/extend/ar_relation/for_rails3.rb
fresh_connection-0.4.3 lib/fresh_connection/extend/ar_relation/for_rails3.rb
fresh_connection-0.4.2 lib/fresh_connection/extend/ar_relation/for_rails3.rb
fresh_connection-0.4.1 lib/fresh_connection/extend/ar_relation/for_rails3.rb