Sha256: 594213fd73fefa60ea7c421cea80752c91c76cf99067260127f159abb246c736

Contents?: true

Size: 979 Bytes

Versions: 119

Compression:

Stored size: 979 Bytes

Contents

module CassandraObject
  module Identity
    # Key factories need to support 3 operations
    class UUIDKeyFactory < AbstractKeyFactory
      class UUID < SimpleUUID::UUID
        include Key

        def to_param
          to_guid
        end
        
        def to_s
          # FIXME - this should probably write the raw bytes 
          # but it's very hard to debug without this for now.
          to_guid
        end
      end
    
      # Next key takes an object and returns the key object it should use.
      # object will be ignored with synthetic keys but could be useful with natural ones
      def next_key(object)
        UUID.new
      end
      
      # Parse should create a new key object from the 'to_param' format
      def parse(string)
        UUID.new(string)
      rescue
        nil
      end
      
      # create should create a new key object from the cassandra format.
      def create(string)
        UUID.new(string)
      end
    end
  end
end

Version data entries

119 entries across 119 versions & 2 rubygems

Version Path
sessionm-cassandra_object-4.0.32 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.31 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.30 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.29 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.28 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.27 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.26 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.25 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.24 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.23 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.22 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.21 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.20 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-2.7.5 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-2.7.4 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.18 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.17 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.16 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.15 lib/cassandra_object/identity/uuid_key_factory.rb
sessionm-cassandra_object-4.0.14 lib/cassandra_object/identity/uuid_key_factory.rb