module Sequel::SQLite

Constants

FALSE_VALUES
SQLITE_TYPES

Hash with string keys and callable values for converting SQLite types.

Public Class Methods

mock_adapter_setup(db) click to toggle source
# File lib/sequel/adapters/shared/sqlite.rb, line 9
def self.mock_adapter_setup(db)
  db.instance_exec do
    @sqlite_version = 30903
  end
end

Public Instance Methods

blob(s) click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 10
def blob(s)
  Sequel::SQL::Blob.new(s.to_s)
end
boolean(s) click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 14
def boolean(s)
  s = s.downcase if s.is_a?(String)
  !FALSE_VALUES.include?(s)
end
date(s) click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 19
def date(s)
  case s
  when String
    Sequel.string_to_date(s)
  when Integer
    Date.jd(s)
  when Float
    Date.jd(s.to_i)
  else
    raise Sequel::Error, "unhandled type when converting to date: #{s.inspect} (#{s.class.inspect})"
  end
end
float(s) click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 36
def float(s)
  s.to_f
end
integer(s) click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 32
def integer(s)
  s.to_i
end
numeric(s) click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 40
def numeric(s)
  s = s.to_s unless s.is_a?(String)
  BigDecimal(s) rescue s
end
time(s) click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 45
def time(s)
  case s
  when String
    Sequel.string_to_time(s)
  when Integer
    Sequel::SQLTime.create(s/3600, (s % 3600)/60, s % 60)
  when Float
    s, f = s.divmod(1)
    Sequel::SQLTime.create(s/3600, (s % 3600)/60, s % 60, (f*1000000).round)
  else
    raise Sequel::Error, "unhandled type when converting to date: #{s.inspect} (#{s.class.inspect})"
  end
end