Sha256: 46ba54023c03dd8eb7349a9a4afa84bdb2c3c3045c84091827824b1f0d3e2790

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

require "sqlite3/constants"

module SQLite3

  class Value
    attr_reader :handle

    def initialize(db, handle)
      @driver = db.driver
      @handle = handle
    end

    def null?
      type == :null
    end

    def to_blob
      @driver.value_blob(@handle)
    end

    def length(utf16 = false)
      if utf16
        @driver.value_bytes16(@handle)
      else
        @driver.value_bytes(@handle)
      end
    end

    def to_f
      @driver.value_double(@handle)
    end

    def to_i
      @driver.value_int(@handle)
    end

    def to_int64
      @driver.value_int64(@handle)
    end

    def to_s(utf16 = false)
      @driver.value_text(@handle, utf16)
    end

    def type
      case @driver.value_type(@handle)
      when Constants::ColumnType::INTEGER
        :int
      when Constants::ColumnType::FLOAT
        :float
      when Constants::ColumnType::TEXT
        :text
      when Constants::ColumnType::BLOB
        :blob
      when Constants::ColumnType::NULL
        :null
      end
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sqlite3-0.0.2 lib/sqlite3/value.rb
sqlite3-0.0.1 lib/sqlite3/value.rb