class ArJdbc::MSSQL::TimeType
@private
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
# File lib/arjdbc/mssql/types.rb, line 196 def initialize(options = {}) super; @precision = nil if @precision == 7 end
Public Instance Methods
type_cast_for_schema(value)
click to toggle source
Calls superclass method
# File lib/arjdbc/mssql/types.rb, line 200 def type_cast_for_schema(value) value.acts_like?(:string) ? "'#{value}'" : super end
Private Instance Methods
cast_usec(value)
click to toggle source
# File lib/arjdbc/mssql/types.rb, line 224 def cast_usec(value) (usec_to_seconds_frction(value) * 1_000_000).to_i end
cast_value(value)
click to toggle source
# File lib/arjdbc/mssql/types.rb, line 206 def cast_value(value) value = value.respond_to?(:usec) ? value.change(year: 2000, month: 01, day: 01) : cast_value_like_super(value) return if value.blank? value.change usec: cast_usec(value) end
cast_value_like_super(value)
click to toggle source
# File lib/arjdbc/mssql/types.rb, line 215 def cast_value_like_super(value) return value unless value.is_a?(::String) return if value.empty? dummy_value = "2000-01-01 #{value}" fast_string_to_time(dummy_value) || DateTime.parse(dummy_value).to_time # rescue nil end
usec_to_seconds_frction(value)
click to toggle source
# File lib/arjdbc/mssql/types.rb, line 228 def usec_to_seconds_frction(value) (value.usec.to_f / 1_000_000.0).round(precision || 7) end