Class: Sequel::Amalgalite::SequelTypeMap

Inherits:
Amalgalite::TypeMaps::DefaultMap
  • Object
show all
Defined in:
lib/sequel/lib/sequel/adapters/amalgalite.rb

Overview

Type conversion map class for Sequel's use of Amalgamite

Instance Method Summary collapse

Instance Method Details

#blob(s) ⇒ Object

Return blobs as instances of Sequel::SQL::Blob instead of Amalgamite::Blob


20
21
22
# File 'lib/sequel/lib/sequel/adapters/amalgalite.rb', line 20

def blob(s)
  SQL::Blob.new(s)
end

#datetime(s) ⇒ Object

Return datetime types as instances of Sequel.datetime_class


31
32
33
# File 'lib/sequel/lib/sequel/adapters/amalgalite.rb', line 31

def datetime(s)
  Sequel.database_to_application_timestamp(s)
end

#decimal(s) ⇒ Object

Return numeric/decimal types as instances of BigDecimal instead of Float


26
27
28
# File 'lib/sequel/lib/sequel/adapters/amalgalite.rb', line 26

def decimal(s)
  BigDecimal.new(s)
end

#result_value_of(declared_type, value) ⇒ Object

Don't raise an error if the value is a string and the declared type doesn't match a known type, just return the value.


37
38
39
40
41
42
43
44
45
# File 'lib/sequel/lib/sequel/adapters/amalgalite.rb', line 37

def result_value_of(declared_type, value)
  if value.is_a?(::Amalgalite::Blob)
    SQL::Blob.new(value.source)
  elsif value.is_a?(String) && declared_type
    (meth = self.class.sql_to_method(declared_type.downcase)) ? send(meth, value) : value
  else
    super
  end
end