invariable 0.1.5 → 0.1.7
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/.yardopts +0 -1
 - data/lib/invariable/version.rb +1 -1
 - data/lib/invariable.rb +20 -23
 - metadata +4 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 99bb0d3d7fca01b1a3d5bdbe965a43f4dd5bbc95f90e9278a81eeb7b00448c86
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 90adb109963224f9e4b5638e6065ab8366d78e4be3f63f7aa99c7f321feeaeaa
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 65052fcc48d1ef7259424c0e7abb63d6f47cbf813de785ce39df80aaa0d566175021d0070ffccde09a36c92107acdd93260385f643cc6e07e803c0cee3612a76
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 692ba41bae06488d1ada5be7f02aa4a3045538999f38340b1fea583113061363193553885cceddb80813d37543901af59afd093ef849ee7c0f12d1183c56078a
         
     | 
    
        data/.yardopts
    CHANGED
    
    
    
        data/lib/invariable/version.rb
    CHANGED
    
    
    
        data/lib/invariable.rb
    CHANGED
    
    | 
         @@ -161,6 +161,11 @@ module Invariable 
     | 
|
| 
       161 
161 
     | 
    
         
             
                @__attr__.values[arg]
         
     | 
| 
       162 
162 
     | 
    
         
             
              end
         
     | 
| 
       163 
163 
     | 
    
         | 
| 
      
 164 
     | 
    
         
            +
              # @!visibility private
         
     | 
| 
      
 165 
     | 
    
         
            +
              def deconstruct
         
     | 
| 
      
 166 
     | 
    
         
            +
                @__attr__.values
         
     | 
| 
      
 167 
     | 
    
         
            +
              end
         
     | 
| 
      
 168 
     | 
    
         
            +
             
     | 
| 
       164 
169 
     | 
    
         
             
              # @!visibility private
         
     | 
| 
       165 
170 
     | 
    
         
             
              def deconstruct_keys(...)
         
     | 
| 
       166 
171 
     | 
    
         
             
                @__attr__.deconstruct_keys(...)
         
     | 
| 
         @@ -195,9 +200,7 @@ module Invariable 
     | 
|
| 
       195 
200 
     | 
    
         
             
              #   @return [Enumerator]
         
     | 
| 
       196 
201 
     | 
    
         
             
              #
         
     | 
| 
       197 
202 
     | 
    
         
             
              def each(&block)
         
     | 
| 
       198 
     | 
    
         
            -
                 
     | 
| 
       199 
     | 
    
         
            -
                @__attr__.each_value(&block)
         
     | 
| 
       200 
     | 
    
         
            -
                self
         
     | 
| 
      
 203 
     | 
    
         
            +
                block ? @__attr__.each_value(&block) : to_enum(__method__)
         
     | 
| 
       201 
204 
     | 
    
         
             
              end
         
     | 
| 
       202 
205 
     | 
    
         | 
| 
       203 
206 
     | 
    
         
             
              #
         
     | 
| 
         @@ -214,9 +217,7 @@ module Invariable 
     | 
|
| 
       214 
217 
     | 
    
         
             
              #   @return [Enumerator]
         
     | 
| 
       215 
218 
     | 
    
         
             
              #
         
     | 
| 
       216 
219 
     | 
    
         
             
              def each_pair(&block)
         
     | 
| 
       217 
     | 
    
         
            -
                 
     | 
| 
       218 
     | 
    
         
            -
                @__attr__.each_pair(&block)
         
     | 
| 
       219 
     | 
    
         
            -
                self
         
     | 
| 
      
 220 
     | 
    
         
            +
                block ? @__attr__.each_pair(&block) : to_enum(__method__)
         
     | 
| 
       220 
221 
     | 
    
         
             
              end
         
     | 
| 
       221 
222 
     | 
    
         | 
| 
       222 
223 
     | 
    
         
             
              #
         
     | 
| 
         @@ -233,17 +234,17 @@ module Invariable 
     | 
|
| 
       233 
234 
     | 
    
         | 
| 
       234 
235 
     | 
    
         
             
              # @!visibility private
         
     | 
| 
       235 
236 
     | 
    
         
             
              def hash
         
     | 
| 
       236 
     | 
    
         
            -
                @__hash__ ||= ( 
     | 
| 
      
 237 
     | 
    
         
            +
                @__hash__ ||= (@__attr__.values << self.class).hash
         
     | 
| 
       237 
238 
     | 
    
         
             
              end
         
     | 
| 
       238 
239 
     | 
    
         | 
| 
       239 
     | 
    
         
            -
               
     | 
| 
       240 
     | 
    
         
            -
               
     | 
| 
       241 
     | 
    
         
            -
             
     | 
| 
      
 240 
     | 
    
         
            +
              alias __to_s to_s
         
     | 
| 
      
 241 
     | 
    
         
            +
              private :__to_s
         
     | 
| 
      
 242 
     | 
    
         
            +
             
     | 
| 
      
 243 
     | 
    
         
            +
              # @!visibility private
         
     | 
| 
       242 
244 
     | 
    
         
             
              def inspect
         
     | 
| 
       243 
245 
     | 
    
         
             
                attributes = @__attr__.map { |k, v| "#{k}: #{v.inspect}" }
         
     | 
| 
       244 
     | 
    
         
            -
                " 
     | 
| 
      
 246 
     | 
    
         
            +
                "#{__to_s[..-2]} #{attributes.join(', ')}>"
         
     | 
| 
       245 
247 
     | 
    
         
             
              end
         
     | 
| 
       246 
     | 
    
         
            -
              alias to_s inspect
         
     | 
| 
       247 
248 
     | 
    
         | 
| 
       248 
249 
     | 
    
         
             
              #
         
     | 
| 
       249 
250 
     | 
    
         
             
              # @return [Boolean] whether the given name is a valid attribute name
         
     | 
| 
         @@ -277,11 +278,6 @@ module Invariable 
     | 
|
| 
       277 
278 
     | 
    
         
             
              end
         
     | 
| 
       278 
279 
     | 
    
         
             
              alias values to_a
         
     | 
| 
       279 
280 
     | 
    
         | 
| 
       280 
     | 
    
         
            -
              # @!visibility private
         
     | 
| 
       281 
     | 
    
         
            -
              def deconstruct
         
     | 
| 
       282 
     | 
    
         
            -
                @__attr__.values
         
     | 
| 
       283 
     | 
    
         
            -
              end
         
     | 
| 
       284 
     | 
    
         
            -
             
     | 
| 
       285 
281 
     | 
    
         
             
              #
         
     | 
| 
       286 
282 
     | 
    
         
             
              # @overload to_h
         
     | 
| 
       287 
283 
     | 
    
         
             
              #   @return [{Symbol => Object}] names and values of all attributes
         
     | 
| 
         @@ -300,8 +296,8 @@ module Invariable 
     | 
|
| 
       300 
296 
     | 
    
         
             
              #   @return [{Object => Object}] pairs returned by the `block`
         
     | 
| 
       301 
297 
     | 
    
         
             
              #
         
     | 
| 
       302 
298 
     | 
    
         
             
              def to_h(compact: false, &block)
         
     | 
| 
       303 
     | 
    
         
            -
                return to_compact_h if compact
         
     | 
| 
       304 
299 
     | 
    
         
             
                return Hash[@__attr__.map(&block)] if block
         
     | 
| 
      
 300 
     | 
    
         
            +
                return __to_compact_h if compact
         
     | 
| 
       305 
301 
     | 
    
         
             
                @__attr__.transform_values { |v| v.is_a?(Invariable) ? v.to_h : v }
         
     | 
| 
       306 
302 
     | 
    
         
             
              end
         
     | 
| 
       307 
303 
     | 
    
         | 
| 
         @@ -326,7 +322,7 @@ module Invariable 
     | 
|
| 
       326 
322 
     | 
    
         | 
| 
       327 
323 
     | 
    
         
             
              private
         
     | 
| 
       328 
324 
     | 
    
         | 
| 
       329 
     | 
    
         
            -
              def  
     | 
| 
      
 325 
     | 
    
         
            +
              def __to_compact_h
         
     | 
| 
       330 
326 
     | 
    
         
             
                result = {}
         
     | 
| 
       331 
327 
     | 
    
         
             
                @__attr__.each_pair do |key, value|
         
     | 
| 
       332 
328 
     | 
    
         
             
                  next if value.nil?
         
     | 
| 
         @@ -367,17 +363,18 @@ module Invariable 
     | 
|
| 
       367 
363 
     | 
    
         
             
                  if method_defined?(name)
         
     | 
| 
       368 
364 
     | 
    
         
             
                    raise(NameError, "attribute already defined - #{name}", caller(4))
         
     | 
| 
       369 
365 
     | 
    
         
             
                  end
         
     | 
| 
       370 
     | 
    
         
            -
                  define_method(name) { @__attr__[name] }
         
     | 
| 
       371 
366 
     | 
    
         
             
                  @__attr__[name] = default.is_a?(Class) ? default : default.dup.freeze
         
     | 
| 
      
 367 
     | 
    
         
            +
                  # accessing "eval-ed" methods is faster than accessing methods defined
         
     | 
| 
      
 368 
     | 
    
         
            +
                  # via #define_method :/
         
     | 
| 
      
 369 
     | 
    
         
            +
                  class_eval("def #{name};@__attr__[:#{name}];end")
         
     | 
| 
       372 
370 
     | 
    
         
             
                  name
         
     | 
| 
       373 
371 
     | 
    
         
             
                end
         
     | 
| 
       374 
372 
     | 
    
         | 
| 
       375 
373 
     | 
    
         
             
                def __attr__init
         
     | 
| 
       376 
374 
     | 
    
         
             
                  if superclass.instance_variable_defined?(:@__attr__)
         
     | 
| 
       377 
     | 
    
         
            -
                    Hash[superclass.instance_variable_get(:@__attr__)]
         
     | 
| 
       378 
     | 
    
         
            -
                  else
         
     | 
| 
       379 
     | 
    
         
            -
                    {}.compare_by_identity
         
     | 
| 
      
 375 
     | 
    
         
            +
                    return Hash[superclass.instance_variable_get(:@__attr__)]
         
     | 
| 
       380 
376 
     | 
    
         
             
                  end
         
     | 
| 
      
 377 
     | 
    
         
            +
                  {}.compare_by_identity
         
     | 
| 
       381 
378 
     | 
    
         
             
                end
         
     | 
| 
       382 
379 
     | 
    
         
             
              end
         
     | 
| 
       383 
380 
     | 
    
         
             
              private_constant(:InvariableClassMethods)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: invariable
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.7
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Mike Blumtritt
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-12-27 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: |
         
     | 
| 
       14 
14 
     | 
    
         
             
              An Invariable bundles a number of read-only attributes.
         
     | 
| 
         @@ -41,14 +41,14 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       41 
41 
     | 
    
         
             
              requirements:
         
     | 
| 
       42 
42 
     | 
    
         
             
              - - ">="
         
     | 
| 
       43 
43 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       44 
     | 
    
         
            -
                  version:  
     | 
| 
      
 44 
     | 
    
         
            +
                  version: 3.0.0
         
     | 
| 
       45 
45 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       46 
46 
     | 
    
         
             
              requirements:
         
     | 
| 
       47 
47 
     | 
    
         
             
              - - ">="
         
     | 
| 
       48 
48 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       49 
49 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       50 
50 
     | 
    
         
             
            requirements: []
         
     | 
| 
       51 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 51 
     | 
    
         
            +
            rubygems_version: 3.4.1
         
     | 
| 
       52 
52 
     | 
    
         
             
            signing_key:
         
     | 
| 
       53 
53 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       54 
54 
     | 
    
         
             
            summary: The Invariable data class for Ruby.
         
     |