class Sequel::Amalgalite::SequelTypeMap

Type conversion map class for Sequel's use of Amalgamite

Public Class Methods

new(db) click to toggle source

Store the related database object, in order to be able to correctly handle the database timezone.

# File lib/sequel/adapters/amalgalite.rb, line 20
def initialize(db)
  @db = db
end

Public Instance Methods

blob(s) click to toggle source

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

# File lib/sequel/adapters/amalgalite.rb, line 26
def blob(s)
  SQL::Blob.new(s)
end
datetime(s) click to toggle source

Return datetime types as instances of Sequel.datetime_class

# File lib/sequel/adapters/amalgalite.rb, line 37
def datetime(s)
  @db.to_application_timestamp(s)
end
decimal(s) click to toggle source

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

# File lib/sequel/adapters/amalgalite.rb, line 32
def decimal(s)
  BigDecimal.new(s)
end
result_value_of(declared_type, value) click to toggle source

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.

Calls superclass method
# File lib/sequel/adapters/amalgalite.rb, line 47
def result_value_of(declared_type, value)
  if value.is_a?(::Amalgalite::Blob)
    SQL::Blob.new(value.to_s)
  elsif value.is_a?(String) && declared_type
    (meth = self.class.sql_to_method(declared_type.downcase)) ? send(meth, value) : value
  else
    super
  end
end
time(s) click to toggle source
# File lib/sequel/adapters/amalgalite.rb, line 41
def time(s)
  Sequel.string_to_time(s)
end