module ActiveRecord::ConnectionAdapters::SQLServer::Type::TimeValueFractional
Private Instance Methods
Source
# File lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb, line 10 def apply_seconds_precision(value) return value if !value.respond_to?(fractional_property) || value.send(fractional_property).zero? value.change fractional_property => seconds_precision(value) end
Source
# File lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb, line 36 def fractional_digits 6 end
Source
# File lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb, line 40 def fractional_operator 10**fractional_digits end
Source
# File lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb, line 44 def fractional_precision 0.00333 end
Source
# File lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb, line 32 def fractional_property :usec end
Source
# File lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb, line 48 def fractional_scale 3 end
Source
# File lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb, line 24 def quote_fractional(value) return 0 if fractional_scale == 0 frac_seconds = seconds_precision(value) seconds = (frac_seconds.to_f / fractional_operator.to_f).round(fractional_scale) seconds.to_d.to_s.split(".").last.to(fractional_scale - 1) end
Source
# File lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb, line 16 def seconds_precision(value) return 0 if fractional_scale == 0 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).round(0).to_i end