tiny_dyno 0.1.18 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +5 -0
- data/lib/tiny_dyno/document.rb +1 -1
- data/lib/tiny_dyno/fields/range_key.rb +1 -1
- data/lib/tiny_dyno/fields.rb +5 -3
- data/lib/tiny_dyno/hash_key.rb +12 -4
- data/lib/tiny_dyno/persistable.rb +0 -8
- data/lib/tiny_dyno/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9067dea5947eebd4d2863cc818c600580e7defbf
         | 
| 4 | 
            +
              data.tar.gz: 8c6d8737297deed27c5ac6338bdd72e0f42e8ed6
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 76148078a22a31259f34bd79739fb11a8eb802301621ed36f4f8f6136eb753eecf9c1a022a974a80f80ece3d81d20878783f1c3d4e51de1a083f08b1635a0481
         | 
| 7 | 
            +
              data.tar.gz: c1aacda3deed812850d722de5b531d1b31cf13abcc31a2314d0264deff8c928d6e1c26f65d2d64fa0b009bf7fb50a63e10e474746d5c323f6f5023e2c0e3fb0a
         | 
    
        data/CHANGES.md
    CHANGED
    
    
    
        data/lib/tiny_dyno/document.rb
    CHANGED
    
    
    
        data/lib/tiny_dyno/fields.rb
    CHANGED
    
    | @@ -1,6 +1,5 @@ | |
| 1 1 | 
             
            require 'tiny_dyno/fields/standard'
         | 
| 2 2 | 
             
            require 'tiny_dyno/fields/range_key'
         | 
| 3 | 
            -
            require 'tracer'
         | 
| 4 3 |  | 
| 5 4 | 
             
            module TinyDyno
         | 
| 6 5 | 
             
              module Fields
         | 
| @@ -163,8 +162,11 @@ module TinyDyno | |
| 163 162 | 
             
                    opts = options.merge(klass: self)
         | 
| 164 163 | 
             
                    if opts.has_key?(:range_key) && opts[:range_key] == true
         | 
| 165 164 | 
             
                      named = name.to_s
         | 
| 166 | 
            -
                       | 
| 167 | 
            -
                       | 
| 165 | 
            +
                      ad = build_attribute_definition(named,opts[:type])
         | 
| 166 | 
            +
                      attribute_definitions << ad
         | 
| 167 | 
            +
                      ks = { attribute_name: named, key_type: 'RANGE' }
         | 
| 168 | 
            +
                      key_schema << ks
         | 
| 169 | 
            +
                      self.range_key = ks.merge(ad)
         | 
| 168 170 | 
             
                      Fields::RangeKey.new(name, opts)
         | 
| 169 171 | 
             
                    else
         | 
| 170 172 | 
             
                      Fields::Standard.new(name, opts)
         | 
    
        data/lib/tiny_dyno/hash_key.rb
    CHANGED
    
    | @@ -3,20 +3,28 @@ module TinyDyno | |
| 3 3 | 
             
                extend ActiveSupport::Concern
         | 
| 4 4 |  | 
| 5 5 | 
             
                included do
         | 
| 6 | 
            -
                  class_attribute :attribute_definitions, :key_schema, :primary_key
         | 
| 6 | 
            +
                  class_attribute :attribute_definitions, :key_schema, :primary_key, :range_key
         | 
| 7 7 |  | 
| 8 8 | 
             
                  # TODO :local_secondary_indexes, :global_secondary_indexes
         | 
| 9 9 | 
             
                  self.attribute_definitions ||= []
         | 
| 10 10 | 
             
                  self.key_schema ||= []
         | 
| 11 11 | 
             
                  self.primary_key ||= {}
         | 
| 12 | 
            +
                  self.range_key ||= {}
         | 
| 12 13 | 
             
                end
         | 
| 13 14 |  | 
| 14 15 | 
             
                # return all defined hash keys on an instantiated object
         | 
| 15 16 | 
             
                # for further use in DynamoDB queries, i.e. to look up an object
         | 
| 16 17 | 
             
                #
         | 
| 17 | 
            -
                def  | 
| 18 | 
            -
                   | 
| 19 | 
            -
                   | 
| 18 | 
            +
                def keys_as_selector
         | 
| 19 | 
            +
                  selector = {}
         | 
| 20 | 
            +
                  primary_key_field = self.class.primary_key[:attr]
         | 
| 21 | 
            +
                  selector[primary_key_field.to_sym] = TinyDyno::Adapter.aws_attribute(field_type: fields[primary_key_field].options[:type], value: attributes[primary_key_field])
         | 
| 22 | 
            +
                  unless range_key.empty?
         | 
| 23 | 
            +
                    range_key_field = self.class.range_key[:attribute_name]
         | 
| 24 | 
            +
                    selector[range_key_field.to_sym] = TinyDyno::Adapter.aws_attribute(field_type: fields[range_key_field].options[:type], value: attributes[range_key_field])
         | 
| 25 | 
            +
                  end
         | 
| 26 | 
            +
                  return nil if selector.empty?
         | 
| 27 | 
            +
                  selector
         | 
| 20 28 | 
             
                end
         | 
| 21 29 |  | 
| 22 30 | 
             
                module ClassMethods
         | 
| @@ -40,14 +40,6 @@ module TinyDyno | |
| 40 40 | 
             
                  }
         | 
| 41 41 | 
             
                end
         | 
| 42 42 |  | 
| 43 | 
            -
                # def build_update_item_request
         | 
| 44 | 
            -
                #   {
         | 
| 45 | 
            -
                #       key: hash_key_as_selector,
         | 
| 46 | 
            -
                #       table_name: self.class.table_name,
         | 
| 47 | 
            -
                #       attribute_updates: build_attribute_updates
         | 
| 48 | 
            -
                #   }
         | 
| 49 | 
            -
                # end
         | 
| 50 | 
            -
             | 
| 51 43 | 
             
                def build_item_request_entries
         | 
| 52 44 | 
             
                  item_entries = {}
         | 
| 53 45 | 
             
                  attributes.each { |k,v| item_entries[k] = TinyDyno::Adapter.aws_attribute(field_type: fields[k].options[:type], value: v) }
         | 
    
        data/lib/tiny_dyno/version.rb
    CHANGED