Class: ActiveRecord::ConnectionAdapters::MSSQL::Type::Time

Inherits:
Type::Time
  • Object
show all
Defined in:
lib/arjdbc/mssql/types/date_and_time_types.rb

Instance Method Summary collapse

Instance Method Details

#apply_seconds_precision(value) ⇒ Object

Overrides method in a super class (located in active model)



110
111
112
113
114
115
116
# File 'lib/arjdbc/mssql/types/date_and_time_types.rb', line 110

def apply_seconds_precision(value)
  return value unless ar_precision && value.respond_to?(:usec)

  number_of_insignificant_digits = 6 - ar_precision
  round_power = 10**number_of_insignificant_digits
  value.change(usec: value.usec / round_power * round_power)
end

#type_cast_for_schema(value) ⇒ Object



99
100
101
102
103
104
105
106
107
# File 'lib/arjdbc/mssql/types/date_and_time_types.rb', line 99

def type_cast_for_schema(value)
  return %("#{value}") if value.acts_like?(:string)

  if value.usec > 0
    %("#{value.to_fs(:db)}.#{value.usec.to_s.remove(/0+$/)}")
  else
    %("#{value.to_fs(:db)}")
  end
end