Sha256: 81cb850d48de5c699b71d1b3ea6eb6a843e3b92d0a9399b939b901e41c7b8a07

Contents?: true

Size: 1.02 KB

Versions: 4

Compression:

Stored size: 1.02 KB

Contents

#--
# Copyright (c) 2023 Jeremy Hinegardner
# All rights reserved.  See LICENSE and/or COPYING for details.
#++

module ::Libsql::TypeMaps
  ##
  # An Amalagliate TypeMap that has a one-to-one conversion between SQLite types
  # and Ruby classes
  #
  class StorageMap < ::Libsql::TypeMap
    ##
    # A straight logical mapping (for me at least) of basic Ruby classes to SQLite types, if
    # nothing can be found then default to TEXT.
    #
    def bind_type_of( obj )
      case obj
      when Float
        ::Libsql::SQLite3::Constants::DataType::FLOAT
      when Integer
        ::Libsql::SQLite3::Constants::DataType::INTEGER
      when NilClass
        ::Libsql::SQLite3::Constants::DataType::NULL
      when ::Libsql::Blob
        ::Libsql::SQLite3::Constants::DataType::BLOB
      else
        ::Libsql::SQLite3::Constants::DataType::TEXT
      end
    end

    ##
    # Do no mapping, just return the value as it was retrieved from SQLite.
    #
    def result_value_of( delcared_type, value )
      return value
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
libsql-0.1.0-x64-mingw-ucrt lib/libsql/type_maps/storage_map.rb
libsql-0.1.0-x64-mingw32 lib/libsql/type_maps/storage_map.rb
libsql-0.1.0-x86-mingw32 lib/libsql/type_maps/storage_map.rb
libsql-0.1.0 lib/libsql/type_maps/storage_map.rb