class Sequel::Amalgalite::SequelTypeMap

  1. lib/sequel/adapters/amalgalite.rb
Parent: Amalgalite

Type conversion map class for Sequel’s use of Amalgamite

Methods

Public Class

  1. new

Public Instance

  1. blob
  2. datetime
  3. decimal
  4. result_value_of
  5. time

Public Class methods

new (db)

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

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

Public Instance methods

blob (s)

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

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

Return datetime types as instances of Sequel.datetime_class

[show source]
# File lib/sequel/adapters/amalgalite.rb, line 37
def datetime(s)
  @db.to_application_timestamp(s)
end
decimal (s)

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

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

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.

[show source]
# 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)
[show source]
# File lib/sequel/adapters/amalgalite.rb, line 41
def time(s)
  Sequel.string_to_time(s)
end