Sha256: ffa7ec98edbf65bc97f4af7eb841266cf0b0303616ff8766f9952e9a44129dab

Contents?: true

Size: 1.77 KB

Versions: 8

Compression:

Stored size: 1.77 KB

Contents

module ActiveRecord
  module ConnectionAdapters
    module SQLServer
      module Type

        module TimeValueFractional

          private

          def cast_fractional(value)
            return value if !value.respond_to?(fractional_property) || value.send(fractional_property).zero?
            frac_seconds = if fractional_scale == 0
                             0
                           else
                             seconds = value.send(fractional_property).to_f / fractional_operator.to_f
                             seconds = ((seconds * (1 / fractional_precision)).round / (1 / fractional_precision)).round(fractional_scale)
                             (seconds * fractional_operator).to_i
                           end
            value.change fractional_property => frac_seconds
          end

          def quote_fractional(value)
            seconds = (value.send(fractional_property).to_f / fractional_operator.to_f).round(fractional_scale)
            seconds.to_d.to_s.split('.').last.to(fractional_scale-1)
          end

          def fractional_property
            :usec
          end

          def fractional_digits
            6
          end

          def fractional_operator
            10 ** fractional_digits
          end

          def fractional_precision
            0.00333
          end

          def fractional_scale
            3
          end

        end

        module TimeValueFractional2

          include TimeValueFractional

          private

          def fractional_property
            :nsec
          end

          def fractional_digits
            9
          end

          def fractional_precision
            0.0000001
          end

          def fractional_scale
            precision
          end

        end

      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
activerecord-sqlserver-adapter-4.2.18 lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb
activerecord-sqlserver-adapter-4.2.17 lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb
activerecord-sqlserver-adapter-4.2.16 lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb
activerecord-sqlserver-adapter_new-4.2.15 lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb
activerecord-sqlserver-adapter-4.2.15 lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb
activerecord-sqlserver-adapter-4.2.13 lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb
activerecord-sqlserver-adapter-4.2.12 lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb
activerecord-sqlserver-adapter-4.2.11 lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb