Sha256: 371f0d96e386a8201ea8d116add9173252e5b30b27618b9ff632332012a9ecf9

Contents?: true

Size: 1.1 KB

Versions: 34

Compression:

Stored size: 1.1 KB

Contents

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

require 'amalgalite/type_map'
require 'amalgalite3'

module Amalgalite::TypeMaps
  ##
  # An Amalagliate TypeMap that has a one-to-one conversion between SQLite types
  # and Ruby classes
  #
  class StorageMap < ::Amalgalite::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
        ::Amalgalite::SQLite3::Constants::DataType::FLOAT
      when Fixnum
        ::Amalgalite::SQLite3::Constants::DataType::INTEGER
      when NilClass
        ::Amalgalite::SQLite3::Constants::DataType::NULL
      when ::Amalgalite::Blob
        ::Amalgalite::SQLite3::Constants::DataType::BLOB
      else
        ::Amalgalite::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

34 entries across 34 versions & 1 rubygems

Version Path
amalgalite-0.2.0 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.1.0 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.2.3 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.2.2 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.2.1 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.2.4 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.4.0 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.4.2-x86-mswin32-60 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.4.1 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.5.0-x86-mswin32-60 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.4.2 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.5.1-x86-mswin32-60 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.5.0 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.5.1 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.6.0 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.6.0-x86-mswin32-60 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.7.0-x86-mswin32-60 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.7.0 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.7.3-x86-mswin32-60 lib/amalgalite/type_maps/storage_map.rb
amalgalite-0.7.1-x86-mswin32-60 lib/amalgalite/type_maps/storage_map.rb