dolly 3.1.0 → 3.1.1
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/lib/dolly/connection.rb +8 -1
- data/lib/dolly/document.rb +8 -1
- data/lib/dolly/document_creation.rb +9 -2
- data/lib/dolly/framework_helper.rb +7 -0
- data/lib/dolly/properties.rb +1 -1
- data/lib/dolly/property.rb +21 -2
- data/lib/dolly/property_manager.rb +4 -4
- data/lib/dolly/version.rb +1 -1
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b4a7f73673dc9600d2451b6ae0dd1ed5ca8c792f671f1a115405b751610b9077
         | 
| 4 | 
            +
              data.tar.gz: 7765f1a58d5515aebce77a79fdde6e0aad8e8928867e39c45a26ac5321ef7cb9
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9430a6c2bc2b951442751b3192778a7d73985d6cb3fa0864f5a9529695d20fec13cd4b451d8232f06dfc0a27cc6897acae734eb979c52b63a60d81aa7c5061c6
         | 
| 7 | 
            +
              data.tar.gz: a46dd510d441efffe1b7998e64b5806fba6fee10470dc3c38d78a4be49bd18d48b50ad9d84b630ef0c04895934214821162a46e3bc3888a71c02171623bffdb6
         | 
    
        data/lib/dolly/connection.rb
    CHANGED
    
    | @@ -6,10 +6,12 @@ require 'dolly/request_header' | |
| 6 6 | 
             
            require 'dolly/exceptions'
         | 
| 7 7 | 
             
            require 'dolly/configuration'
         | 
| 8 8 | 
             
            require 'refinements/string_refinements'
         | 
| 9 | 
            +
            require 'dolly/framework_helper'
         | 
| 9 10 |  | 
| 10 11 | 
             
            module Dolly
         | 
| 11 12 | 
             
              class Connection
         | 
| 12 13 | 
             
                include Dolly::Configuration
         | 
| 14 | 
            +
                include Dolly::FrameworkHelper
         | 
| 13 15 | 
             
                attr_reader :db, :app_env
         | 
| 14 16 |  | 
| 15 17 | 
             
                DEFAULT_HEADER = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
         | 
| @@ -92,7 +94,12 @@ module Dolly | |
| 92 94 | 
             
                  raise Dolly::ResourceNotFound if res.status.to_i == 404
         | 
| 93 95 | 
             
                  raise Dolly::ServerError.new(res.status.to_i) if (400..600).include? res.status.to_i
         | 
| 94 96 | 
             
                  return res.header_str if method == :head
         | 
| 95 | 
            -
             | 
| 97 | 
            +
             | 
| 98 | 
            +
                  data = Oj.load(res.body_str, symbol_keys: true)
         | 
| 99 | 
            +
                  return data unless rails?
         | 
| 100 | 
            +
                  data.with_indifferent_access
         | 
| 101 | 
            +
                rescue Oj::ParseError
         | 
| 102 | 
            +
                  res.body_str
         | 
| 96 103 | 
             
                end
         | 
| 97 104 |  | 
| 98 105 | 
             
                def values_to_json hash
         | 
    
        data/lib/dolly/document.rb
    CHANGED
    
    | @@ -15,6 +15,7 @@ require 'dolly/timestamp' | |
| 15 15 | 
             
            require 'dolly/query_arguments'
         | 
| 16 16 | 
             
            require 'dolly/document_creation'
         | 
| 17 17 | 
             
            require 'dolly/class_methods_delegation'
         | 
| 18 | 
            +
            require 'dolly/framework_helper'
         | 
| 18 19 | 
             
            require 'refinements/string_refinements'
         | 
| 19 20 |  | 
| 20 21 | 
             
            module Dolly
         | 
| @@ -35,6 +36,7 @@ module Dolly | |
| 35 36 | 
             
                include Attachment
         | 
| 36 37 | 
             
                include QueryArguments
         | 
| 37 38 | 
             
                include ClassMethodsDelegation
         | 
| 39 | 
            +
                include FrameworkHelper
         | 
| 38 40 |  | 
| 39 41 | 
             
                attr_writer :doc
         | 
| 40 42 |  | 
| @@ -46,7 +48,7 @@ module Dolly | |
| 46 48 | 
             
                protected
         | 
| 47 49 |  | 
| 48 50 | 
             
                def doc
         | 
| 49 | 
            -
                  @doc ||=  | 
| 51 | 
            +
                  @doc ||= doc_for_framework
         | 
| 50 52 | 
             
                end
         | 
| 51 53 |  | 
| 52 54 | 
             
                def init_ancestor_properties
         | 
| @@ -59,5 +61,10 @@ module Dolly | |
| 59 61 | 
             
                    end
         | 
| 60 62 | 
             
                  end
         | 
| 61 63 | 
             
                end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                def doc_for_framework
         | 
| 66 | 
            +
                  return {} unless rails?
         | 
| 67 | 
            +
                  {}.with_indifferent_access
         | 
| 68 | 
            +
                end
         | 
| 62 69 | 
             
              end
         | 
| 63 70 | 
             
            end
         | 
| @@ -1,16 +1,23 @@ | |
| 1 1 | 
             
            require 'dolly/properties'
         | 
| 2 | 
            +
            require 'dolly/framework_helper'
         | 
| 2 3 |  | 
| 3 4 | 
             
            module Dolly
         | 
| 4 5 | 
             
              module DocumentCreation
         | 
| 5 6 | 
             
                include Properties
         | 
| 7 | 
            +
                include FrameworkHelper
         | 
| 6 8 |  | 
| 7 9 | 
             
                def from_doc(doc)
         | 
| 8 10 | 
             
                  attributes = property_clean_doc(doc)
         | 
| 9 | 
            -
             | 
| 11 | 
            +
             | 
| 12 | 
            +
                  new(attributes).tap do |model|
         | 
| 13 | 
            +
                    model.send(:doc).merge!(doc)
         | 
| 14 | 
            +
                  end
         | 
| 10 15 | 
             
                end
         | 
| 11 16 |  | 
| 12 17 | 
             
                def from_json(json)
         | 
| 13 | 
            -
                   | 
| 18 | 
            +
                  raw_data = Oj.load(json, symbol_keys: true)
         | 
| 19 | 
            +
                  data = rails? ? data.with_indifferent_access : raw_data
         | 
| 20 | 
            +
                  from_doc(data)
         | 
| 14 21 | 
             
                end
         | 
| 15 22 |  | 
| 16 23 | 
             
                def create(attributes)
         | 
    
        data/lib/dolly/properties.rb
    CHANGED
    
    
    
        data/lib/dolly/property.rb
    CHANGED
    
    | @@ -16,10 +16,15 @@ module Dolly | |
| 16 16 | 
             
                def cast_value(value)
         | 
| 17 17 | 
             
                  return set_default if value.nil?
         | 
| 18 18 | 
             
                  return value unless class_name
         | 
| 19 | 
            -
                  return  | 
| 19 | 
            +
                  return custom_class(value) unless respond_to?(klass_sym)
         | 
| 20 20 | 
             
                  send(klass_sym, value)
         | 
| 21 21 | 
             
                end
         | 
| 22 22 |  | 
| 23 | 
            +
                def custom_class(value)
         | 
| 24 | 
            +
                  value = value.is_a?(Hash) ? value.symbolize_keys : value
         | 
| 25 | 
            +
                  self_klass.new(value)
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 23 28 | 
             
                def boolean?
         | 
| 24 29 | 
             
                  [TrueClass, FalseClass].include?(class_name)
         | 
| 25 30 | 
             
                end
         | 
| @@ -32,6 +37,14 @@ module Dolly | |
| 32 37 | 
             
                  value.to_h
         | 
| 33 38 | 
             
                end
         | 
| 34 39 |  | 
| 40 | 
            +
                def hash_with_indifferent_access_value(value)
         | 
| 41 | 
            +
                  if defined?(Rails)
         | 
| 42 | 
            +
                    value.to_h.with_indifferent_access
         | 
| 43 | 
            +
                  else
         | 
| 44 | 
            +
                    value.to_h
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 35 48 | 
             
                def integer_value(value)
         | 
| 36 49 | 
             
                  value.to_i
         | 
| 37 50 | 
             
                end
         | 
| @@ -70,7 +83,13 @@ module Dolly | |
| 70 83 | 
             
                end
         | 
| 71 84 |  | 
| 72 85 | 
             
                def klass_sym
         | 
| 73 | 
            -
                   | 
| 86 | 
            +
                  klass_name = self_klass.
         | 
| 87 | 
            +
                               name.
         | 
| 88 | 
            +
                               split('::').
         | 
| 89 | 
            +
                               last.
         | 
| 90 | 
            +
                               underscore
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                  :"#{klass_name}_value"
         | 
| 74 93 | 
             
                end
         | 
| 75 94 |  | 
| 76 95 | 
             
                def self_klass
         | 
| @@ -5,7 +5,7 @@ module Dolly | |
| 5 5 | 
             
                  assign_rev_properties(attributes)
         | 
| 6 6 |  | 
| 7 7 | 
             
                  lambda do |property|
         | 
| 8 | 
            -
                    name = property.key | 
| 8 | 
            +
                    name = property.key
         | 
| 9 9 | 
             
                    next unless doc[name].nil?
         | 
| 10 10 | 
             
                    write_attribute(name, attributes[name])
         | 
| 11 11 | 
             
                  end
         | 
| @@ -19,9 +19,9 @@ module Dolly | |
| 19 19 | 
             
                end
         | 
| 20 20 |  | 
| 21 21 | 
             
                def write_attribute(key, value)
         | 
| 22 | 
            -
                   | 
| 23 | 
            -
                  instance_variable_set(:"@#{key}",  | 
| 24 | 
            -
                  update_doc(key,  | 
| 22 | 
            +
                  casted_value = set_property_value(key, value)
         | 
| 23 | 
            +
                  instance_variable_set(:"@#{key}", casted_value)
         | 
| 24 | 
            +
                  update_doc(key, casted_value)
         | 
| 25 25 | 
             
                end
         | 
| 26 26 |  | 
| 27 27 | 
             
                def valid_property?(name)
         | 
    
        data/lib/dolly/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: dolly
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3.1. | 
| 4 | 
            +
              version: 3.1.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - javierg
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-05 | 
| 11 | 
            +
            date: 2021-10-05 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: oj
         | 
| @@ -129,6 +129,7 @@ files: | |
| 129 129 | 
             
            - lib/dolly/document_state.rb
         | 
| 130 130 | 
             
            - lib/dolly/document_type.rb
         | 
| 131 131 | 
             
            - lib/dolly/exceptions.rb
         | 
| 132 | 
            +
            - lib/dolly/framework_helper.rb
         | 
| 132 133 | 
             
            - lib/dolly/identity_properties.rb
         | 
| 133 134 | 
             
            - lib/dolly/mango.rb
         | 
| 134 135 | 
             
            - lib/dolly/mango_index.rb
         |