Sha256: f5b8ea6ef6e7e8beed50f009ea41dc90aa61e9e05a8ae6ab5e4521ddbbdd505c

Contents?: true

Size: 904 Bytes

Versions: 3

Compression:

Stored size: 904 Bytes

Contents

require 'active_record/relation'
require 'active_record/version'

module ActiveRecord
  module ConnectionAdapters
    module SQLServer
      module CoreExt
        module Calculations
          private

          def build_count_subquery(relation, column_name, distinct)
            super(relation.unscope(:order), column_name, distinct)
          end

          def type_cast_calculated_value(value, type, operation = nil)
            case operation
            when "count"   then value.to_i
            when "sum"     then type.deserialize(value || 0)
            when "average" then value&.respond_to?(:to_d) ? value.to_d : value
            else type.deserialize(value)
            end
          end
        end
      end
    end
  end
end

ActiveSupport.on_load(:active_record) do
  mod = ActiveRecord::ConnectionAdapters::SQLServer::CoreExt::Calculations
  ActiveRecord::Relation.prepend(mod)
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-5.2.0 lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb
activerecord-sqlserver-adapter-5.2.0.rc2 lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb
activerecord-sqlserver-adapter-5.2.0.rc1 lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb