queryable_collection 0.2.0 → 0.4.0
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/.github/workflows/ruby.yml +6 -1
 - data/.rubocop.yml +4 -1
 - data/.ruby-version +1 -1
 - data/CHANGELOG.md +10 -1
 - data/Gemfile +2 -0
 - data/README.md +1 -0
 - data/Rakefile +2 -0
 - data/bin/console +1 -0
 - data/lib/queryable_collection/version.rb +1 -1
 - data/lib/queryable_collection/worker.rb +6 -2
 - data/lib/queryable_collection.rb +2 -0
 - data/queryable_collection.gemspec +7 -8
 - metadata +8 -36
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: cf35c3ca7869212459238abd6d2c801bb7b06ab539024aa9ab24ef20fdbb7e8f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: eb8f8ca2dc3898ce4de4f78a11719d055fe9341a5b98d20ab687cfbd34eae458
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 9e172c39d0f3e56f51dd7fa1452ea0f0c7ccfbd10c481c194d4017712c79bfca511afb6a4254c66125d3f88873a470045dfaf836d058679258d121ba39b217ed
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: c3a4f14d95fc376dfeedbe8dc79b5fc1b52ed45f3dd0359392bda0336b92177342afbc9ca29fbad8d659eaf1e41e2a4c1ef4629a2838c58506ee09ced7c32ecf
         
     | 
    
        data/.github/workflows/ruby.yml
    CHANGED
    
    | 
         @@ -5,7 +5,7 @@ jobs: 
     | 
|
| 
       5 
5 
     | 
    
         
             
                strategy:
         
     | 
| 
       6 
6 
     | 
    
         
             
                  fail-fast: false
         
     | 
| 
       7 
7 
     | 
    
         
             
                  matrix:
         
     | 
| 
       8 
     | 
    
         
            -
                    ruby: [" 
     | 
| 
      
 8 
     | 
    
         
            +
                    ruby: ["3.0", "3.1", "3.2"]
         
     | 
| 
       9 
9 
     | 
    
         
             
                runs-on: ubuntu-latest
         
     | 
| 
       10 
10 
     | 
    
         
             
                steps:
         
     | 
| 
       11 
11 
     | 
    
         
             
                  - uses: actions/checkout@v2
         
     | 
| 
         @@ -14,3 +14,8 @@ jobs: 
     | 
|
| 
       14 
14 
     | 
    
         
             
                      ruby-version: ${{ matrix.ruby }}
         
     | 
| 
       15 
15 
     | 
    
         
             
                      bundler-cache: true
         
     | 
| 
       16 
16 
     | 
    
         
             
                  - run: bundle exec rake
         
     | 
| 
      
 17 
     | 
    
         
            +
                  - name: Coveralls
         
     | 
| 
      
 18 
     | 
    
         
            +
                    uses: coverallsapp/github-action@master
         
     | 
| 
      
 19 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 20 
     | 
    
         
            +
                      github-token: ${{ secrets.GITHUB_TOKEN }}
         
     | 
| 
      
 21 
     | 
    
         
            +
                      path-to-lcov: coverage/lcov.info
         
     | 
    
        data/.rubocop.yml
    CHANGED
    
    | 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            AllCops:
         
     | 
| 
       2 
     | 
    
         
            -
              TargetRubyVersion: 2 
     | 
| 
      
 2 
     | 
    
         
            +
              TargetRubyVersion: 3.2
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            Metrics/LineLength:
         
     | 
| 
       5 
5 
     | 
    
         
             
              Max: 100
         
     | 
| 
         @@ -12,3 +12,6 @@ Style/BlockDelimiters: 
     | 
|
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            Style/TrivialAccessors:
         
     | 
| 
       14 
14 
     | 
    
         
             
              AllowPredicates: true
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            Metrics/BlockLength:
         
     | 
| 
      
 17 
     | 
    
         
            +
              IgnoredMethods: ["describe", "context"]
         
     | 
    
        data/.ruby-version
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            3. 
     | 
| 
      
 1 
     | 
    
         
            +
            3.2.0
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,7 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Change Log
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            All notable changes to this project will be documented in this file.  
         
     | 
| 
       3 
4 
     | 
    
         
             
            This project adheres to [Semantic Versioning](http://semver.org/).  
         
     | 
| 
       4 
     | 
    
         
            -
            This changelog adheres to [Keep a CHANGELOG](http://keepachangelog.com/). 
     | 
| 
      
 5 
     | 
    
         
            +
            This changelog adheres to [Keep a CHANGELOG](http://keepachangelog.com/).
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ## 0.4.0
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            - [PLAT-1175] Update to Ruby 3.2
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ## 0.3.0
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            - [PLAT-183] Ruby 3.1 and use coverage-kit
         
     | 
| 
       5 
14 
     | 
    
         | 
| 
       6 
15 
     | 
    
         
             
            ## 0.2.0
         
     | 
| 
       7 
16 
     | 
    
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -2,6 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            [](http://badge.fury.io/rb/queryable_collection)
         
     | 
| 
       4 
4 
     | 
    
         
             
            [](https://github.com/sealink/queryable_collection/actions)
         
     | 
| 
      
 5 
     | 
    
         
            +
            [](https://coveralls.io/github/sealink/queryable_collection?branch=master)
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
7 
     | 
    
         
             
            QueryableCollection allows you to create a collection of objects and then query them based on a (user) defined set of queryable properties
         
     | 
| 
       7 
8 
     | 
    
         | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/bin/console
    CHANGED
    
    
| 
         @@ -1,3 +1,5 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            require 'adamantium'
         
     | 
| 
       2 
4 
     | 
    
         | 
| 
       3 
5 
     | 
    
         
             
            module QueryableCollection
         
     | 
| 
         @@ -6,8 +8,9 @@ module QueryableCollection 
     | 
|
| 
       6 
8 
     | 
    
         | 
| 
       7 
9 
     | 
    
         
             
                def initialize(elements, queryable_attributes)
         
     | 
| 
       8 
10 
     | 
    
         
             
                  @elements = Array(elements)
         
     | 
| 
       9 
     | 
    
         
            -
                   
     | 
| 
      
 11 
     | 
    
         
            +
                  raise(Error, 'Queryable attributes must be a non empty list of attributes') unless
         
     | 
| 
       10 
12 
     | 
    
         
             
                    valid_queryable_attributes? queryable_attributes
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       11 
14 
     | 
    
         
             
                  @queryable_attributes = queryable_attributes.map(&:to_s)
         
     | 
| 
       12 
15 
     | 
    
         
             
                end
         
     | 
| 
       13 
16 
     | 
    
         | 
| 
         @@ -69,7 +72,8 @@ module QueryableCollection 
     | 
|
| 
       69 
72 
     | 
    
         
             
                  def validate!
         
     | 
| 
       70 
73 
     | 
    
         
             
                    non_queryable_attributes = @query.keys.reject { |attribute| queryable?(attribute) }
         
     | 
| 
       71 
74 
     | 
    
         
             
                    return if non_queryable_attributes.empty?
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                    raise Error, "Attributes #{non_queryable_attributes.join(', ')} can't be used in query"
         
     | 
| 
       73 
77 
     | 
    
         
             
                  end
         
     | 
| 
       74 
78 
     | 
    
         
             
                end
         
     | 
| 
       75 
79 
     | 
    
         
             
              end
         
     | 
    
        data/lib/queryable_collection.rb
    CHANGED
    
    
| 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #  
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            lib = File.expand_path('lib', __dir__)
         
     | 
| 
       3 
4 
     | 
    
         
             
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
       4 
5 
     | 
    
         
             
            require 'queryable_collection/version'
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
         @@ -23,17 +24,15 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       23 
24 
     | 
    
         
             
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         
     | 
| 
       24 
25 
     | 
    
         
             
              spec.require_paths = ['lib']
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
              spec.required_ruby_version = '>=  
     | 
| 
      
 27 
     | 
    
         
            +
              spec.required_ruby_version = '>= 3.0'
         
     | 
| 
       27 
28 
     | 
    
         | 
| 
       28 
29 
     | 
    
         
             
              spec.add_dependency 'adamantium', '~> 0.2'
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
       30 
31 
     | 
    
         
             
              spec.add_development_dependency 'bundler'
         
     | 
| 
       31 
     | 
    
         
            -
              spec.add_development_dependency ' 
     | 
| 
      
 32 
     | 
    
         
            +
              spec.add_development_dependency 'coverage-kit'
         
     | 
| 
       32 
33 
     | 
    
         
             
              spec.add_development_dependency 'dotenv'
         
     | 
| 
      
 34 
     | 
    
         
            +
              spec.add_development_dependency 'pry-byebug'
         
     | 
| 
      
 35 
     | 
    
         
            +
              spec.add_development_dependency 'rake'
         
     | 
| 
       33 
36 
     | 
    
         
             
              spec.add_development_dependency 'rspec'
         
     | 
| 
       34 
     | 
    
         
            -
              spec.add_development_dependency 'simplecov'
         
     | 
| 
       35 
     | 
    
         
            -
              spec.add_development_dependency 'simplecov-rcov'
         
     | 
| 
       36 
     | 
    
         
            -
              spec.add_development_dependency 'coveralls'
         
     | 
| 
       37 
37 
     | 
    
         
             
              spec.add_development_dependency 'rubocop'
         
     | 
| 
       38 
     | 
    
         
            -
              spec.add_development_dependency 'pry-byebug'
         
     | 
| 
       39 
38 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: queryable_collection
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.4.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Akil Madan
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-01-17 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: adamantium
         
     | 
| 
         @@ -39,7 +39,7 @@ dependencies: 
     | 
|
| 
       39 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
40 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       41 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
     | 
    
         
            -
              name:  
     | 
| 
      
 42 
     | 
    
         
            +
              name: coverage-kit
         
     | 
| 
       43 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
44 
     | 
    
         
             
                requirements:
         
     | 
| 
       45 
45 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -67,21 +67,7 @@ dependencies: 
     | 
|
| 
       67 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
68 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       69 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
     | 
    
         
            -
              name:  
     | 
| 
       71 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       72 
     | 
    
         
            -
                requirements:
         
     | 
| 
       73 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       74 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       75 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       76 
     | 
    
         
            -
              type: :development
         
     | 
| 
       77 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       78 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       79 
     | 
    
         
            -
                requirements:
         
     | 
| 
       80 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       81 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       83 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       84 
     | 
    
         
            -
              name: simplecov
         
     | 
| 
      
 70 
     | 
    
         
            +
              name: pry-byebug
         
     | 
| 
       85 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       86 
72 
     | 
    
         
             
                requirements:
         
     | 
| 
       87 
73 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -95,7 +81,7 @@ dependencies: 
     | 
|
| 
       95 
81 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       96 
82 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       97 
83 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       98 
     | 
    
         
            -
              name:  
     | 
| 
      
 84 
     | 
    
         
            +
              name: rake
         
     | 
| 
       99 
85 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       100 
86 
     | 
    
         
             
                requirements:
         
     | 
| 
       101 
87 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -109,7 +95,7 @@ dependencies: 
     | 
|
| 
       109 
95 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       110 
96 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       111 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       112 
     | 
    
         
            -
              name:  
     | 
| 
      
 98 
     | 
    
         
            +
              name: rspec
         
     | 
| 
       113 
99 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       114 
100 
     | 
    
         
             
                requirements:
         
     | 
| 
       115 
101 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -136,20 +122,6 @@ dependencies: 
     | 
|
| 
       136 
122 
     | 
    
         
             
                - - ">="
         
     | 
| 
       137 
123 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
124 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       139 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       140 
     | 
    
         
            -
              name: pry-byebug
         
     | 
| 
       141 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       142 
     | 
    
         
            -
                requirements:
         
     | 
| 
       143 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       144 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       145 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       146 
     | 
    
         
            -
              type: :development
         
     | 
| 
       147 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       148 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       149 
     | 
    
         
            -
                requirements:
         
     | 
| 
       150 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       151 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       152 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       153 
125 
     | 
    
         
             
            description: Allows the caller to define a queryable collection of elements and the
         
     | 
| 
       154 
126 
     | 
    
         
             
              attributes that can be used for querying. Provides the necessary methods to query
         
     | 
| 
       155 
127 
     | 
    
         
             
              the collection
         
     | 
| 
         @@ -190,14 +162,14 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       190 
162 
     | 
    
         
             
              requirements:
         
     | 
| 
       191 
163 
     | 
    
         
             
              - - ">="
         
     | 
| 
       192 
164 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       193 
     | 
    
         
            -
                  version: ' 
     | 
| 
      
 165 
     | 
    
         
            +
                  version: '3.0'
         
     | 
| 
       194 
166 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       195 
167 
     | 
    
         
             
              requirements:
         
     | 
| 
       196 
168 
     | 
    
         
             
              - - ">="
         
     | 
| 
       197 
169 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       198 
170 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       199 
171 
     | 
    
         
             
            requirements: []
         
     | 
| 
       200 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 172 
     | 
    
         
            +
            rubygems_version: 3.4.1
         
     | 
| 
       201 
173 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       202 
174 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       203 
175 
     | 
    
         
             
            summary: Allows the creation and querying of a collection of elements
         
     |