graphiti 1.3.9 → 1.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/probots.yml +2 -0
 - data/.github/workflows/ci.yml +15 -8
 - data/Appraisals +15 -0
 - data/CHANGELOG.md +15 -1
 - data/Gemfile +1 -0
 - data/gemfiles/rails_7_1.gemfile +18 -0
 - data/gemfiles/rails_7_1_graphiti_rails.gemfile +19 -0
 - data/lib/graphiti/debugger.rb +0 -1
 - data/lib/graphiti/query.rb +6 -3
 - data/lib/graphiti/resource/dsl.rb +1 -1
 - data/lib/graphiti/resource/sideloading.rb +2 -2
 - data/lib/graphiti/resource_proxy.rb +3 -1
 - data/lib/graphiti/schema.rb +1 -1
 - data/lib/graphiti/scoping/filter.rb +3 -3
 - data/lib/graphiti/util/link.rb +1 -0
 - data/lib/graphiti/util/serializer_relationships.rb +1 -1
 - data/lib/graphiti/version.rb +1 -1
 - data/lib/graphiti.rb +8 -2
 - metadata +6 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 204d1a4f58e02729d7ce4f924845e1517a3cdd22e40399624b182bce2e41a48e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 0246a34ea30c9f27a58be2ba507cc27a41ab6d478947425967758f2c528bbd52
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 80f71ce21c23066cc5d362b62e292442d8850e598a6039d77580a094028e11716d72032921af12186b792730b61e3e94069a813debce308a728c6533c69df7c2
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: fec525c3040ca87f939cdf879cbf469dde0d1c263845e54a3a01e29d7e79447bf2221af39026d9bc98aa6df826b0ce9068d9736d2f859313ec0b8f9b8c19f54a
         
     | 
    
        data/.github/probots.yml
    ADDED
    
    
    
        data/.github/workflows/ci.yml
    CHANGED
    
    | 
         @@ -28,10 +28,11 @@ jobs: 
     | 
|
| 
       28 
28 
     | 
    
         
             
                  fail-fast: false
         
     | 
| 
       29 
29 
     | 
    
         
             
                  matrix:
         
     | 
| 
       30 
30 
     | 
    
         
             
                    ruby:
         
     | 
| 
       31 
     | 
    
         
            -
                      - "2.6"
         
     | 
| 
       32 
31 
     | 
    
         
             
                      - "2.7"
         
     | 
| 
       33 
32 
     | 
    
         
             
                      - "3.0"
         
     | 
| 
       34 
33 
     | 
    
         
             
                      - "3.1"
         
     | 
| 
      
 34 
     | 
    
         
            +
                      - "3.2"
         
     | 
| 
      
 35 
     | 
    
         
            +
                      - "3.3"
         
     | 
| 
       35 
36 
     | 
    
         
             
                    gemfile:
         
     | 
| 
       36 
37 
     | 
    
         
             
                      - Gemfile
         
     | 
| 
       37 
38 
     | 
    
         
             
                      - gemfiles/rails_5_2.gemfile
         
     | 
| 
         @@ -40,12 +41,13 @@ jobs: 
     | 
|
| 
       40 
41 
     | 
    
         
             
                      - gemfiles/rails_5_2_graphiti_rails.gemfile
         
     | 
| 
       41 
42 
     | 
    
         
             
                      - gemfiles/rails_6_graphiti_rails.gemfile
         
     | 
| 
       42 
43 
     | 
    
         
             
                      - gemfiles/rails_7_graphiti_rails.gemfile
         
     | 
| 
      
 44 
     | 
    
         
            +
                      - gemfiles/rails_7_1_graphiti_rails.gemfile
         
     | 
| 
       43 
45 
     | 
    
         
             
                    appraisal:
         
     | 
| 
       44 
46 
     | 
    
         
             
                      - true
         
     | 
| 
       45 
47 
     | 
    
         
             
                      - false
         
     | 
| 
       46 
48 
     | 
    
         
             
                    include:
         
     | 
| 
       47 
49 
     | 
    
         
             
                      - ruby: ruby-head
         
     | 
| 
       48 
     | 
    
         
            -
                        gemfile:  
     | 
| 
      
 50 
     | 
    
         
            +
                        gemfile: gemfiles/rails_7_1.gemfile
         
     | 
| 
       49 
51 
     | 
    
         
             
                        appraisal: true
         
     | 
| 
       50 
52 
     | 
    
         
             
                      - ruby: ruby-head
         
     | 
| 
       51 
53 
     | 
    
         
             
                        gemfile: Gemfile
         
     | 
| 
         @@ -66,7 +68,9 @@ jobs: 
     | 
|
| 
       66 
68 
     | 
    
         
             
                        appraisal: false
         
     | 
| 
       67 
69 
     | 
    
         
             
                      - gemfile: gemfiles/rails_7_graphiti_rails.gemfile
         
     | 
| 
       68 
70 
     | 
    
         
             
                        appraisal: false
         
     | 
| 
       69 
     | 
    
         
            -
                       
     | 
| 
      
 71 
     | 
    
         
            +
                      - gemfile: gemfiles/rails_7_1_graphiti_rails.gemfile
         
     | 
| 
      
 72 
     | 
    
         
            +
                        appraisal: false
         
     | 
| 
      
 73 
     | 
    
         
            +
                        # Rails 5 can't run on Ruby 3
         
     | 
| 
       70 
74 
     | 
    
         
             
                      - gemfile: gemfiles/rails_5_2.gemfile
         
     | 
| 
       71 
75 
     | 
    
         
             
                        ruby: 3.0
         
     | 
| 
       72 
76 
     | 
    
         
             
                      - gemfile: gemfiles/rails_5_2_graphiti_rails.gemfile
         
     | 
| 
         @@ -75,11 +79,14 @@ jobs: 
     | 
|
| 
       75 
79 
     | 
    
         
             
                        ruby: 3.1
         
     | 
| 
       76 
80 
     | 
    
         
             
                      - gemfile: gemfiles/rails_5_2_graphiti_rails.gemfile
         
     | 
| 
       77 
81 
     | 
    
         
             
                        ruby: 3.1
         
     | 
| 
       78 
     | 
    
         
            -
                       
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
      
 82 
     | 
    
         
            +
                      - gemfile: gemfiles/rails_5_2.gemfile
         
     | 
| 
      
 83 
     | 
    
         
            +
                        ruby: 3.2
         
     | 
| 
      
 84 
     | 
    
         
            +
                      - gemfile: gemfiles/rails_5_2_graphiti_rails.gemfile
         
     | 
| 
      
 85 
     | 
    
         
            +
                        ruby: 3.2
         
     | 
| 
      
 86 
     | 
    
         
            +
                      - gemfile: gemfiles/rails_5_2.gemfile
         
     | 
| 
      
 87 
     | 
    
         
            +
                        ruby: 3.3
         
     | 
| 
      
 88 
     | 
    
         
            +
                      - gemfile: gemfiles/rails_5_2_graphiti_rails.gemfile
         
     | 
| 
      
 89 
     | 
    
         
            +
                        ruby: 3.3
         
     | 
| 
       83 
90 
     | 
    
         
             
                continue-on-error: ${{ matrix.ruby == 'ruby-head' }}
         
     | 
| 
       84 
91 
     | 
    
         
             
                env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
         
     | 
| 
       85 
92 
     | 
    
         
             
                  BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
         
     | 
    
        data/Appraisals
    CHANGED
    
    | 
         @@ -42,3 +42,18 @@ appraise "rails-7-graphiti-rails" do 
     | 
|
| 
       42 
42 
     | 
    
         
             
              gem "database_cleaner"
         
     | 
| 
       43 
43 
     | 
    
         
             
              gem "graphiti-rails", "~> 0.4.0"
         
     | 
| 
       44 
44 
     | 
    
         
             
            end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            appraise "rails-7-1" do
         
     | 
| 
      
 47 
     | 
    
         
            +
              gem "rails", "~> 7.1"
         
     | 
| 
      
 48 
     | 
    
         
            +
              gem "rspec-rails"
         
     | 
| 
      
 49 
     | 
    
         
            +
              gem "sqlite3", "~> 1.4.0"
         
     | 
| 
      
 50 
     | 
    
         
            +
              gem "database_cleaner"
         
     | 
| 
      
 51 
     | 
    
         
            +
            end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            appraise "rails-7-1-graphiti-rails" do
         
     | 
| 
      
 54 
     | 
    
         
            +
              gem "rails", "~> 7.1"
         
     | 
| 
      
 55 
     | 
    
         
            +
              gem "rspec-rails"
         
     | 
| 
      
 56 
     | 
    
         
            +
              gem "sqlite3", "~> 1.4.0"
         
     | 
| 
      
 57 
     | 
    
         
            +
              gem "database_cleaner"
         
     | 
| 
      
 58 
     | 
    
         
            +
              gem "graphiti-rails", "~> 0.4.0"
         
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,4 +1,18 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ##  
     | 
| 
      
 1 
     | 
    
         
            +
            ## 1.4.0, Sun March 17th 2024
         
     | 
| 
      
 2 
     | 
    
         
            +
            Features: 
         
     | 
| 
      
 3 
     | 
    
         
            +
            - [461](https://github.com/graphiti-api/graphiti/pull/461), [463](https://github.com/graphiti-api/graphiti/pull/463) Add support for Rails 7.1 + Ruby 3.2 + Ruby 3.3
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Fixes: 
         
     | 
| 
      
 6 
     | 
    
         
            +
            - [464](https://github.com/graphiti-api/graphiti/pull/464) Check for url presence before trying to append
         
     | 
| 
      
 7 
     | 
    
         
            +
            - [407](https://github.com/graphiti-api/graphiti/pull/407) Sort types in generated schema
         
     | 
| 
      
 8 
     | 
    
         
            +
            - [421](https://github.com/graphiti-api/graphiti/pull/421) Re-use resource class for remote sideloads to avoid memory leak
         
     | 
| 
      
 9 
     | 
    
         
            +
            - [452](https://github.com/graphiti-api/graphiti/pull/452) Resolve inconsistency for filters containing curly brackets
         
     | 
| 
      
 10 
     | 
    
         
            +
            - [446](https://github.com/graphiti-api/graphiti/pull/446) Fix private call
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ## 1.3.9, May 25th 2022
         
     | 
| 
      
 13 
     | 
    
         
            +
            Use an options hash for log subscriber instead of positional arguments
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            ## 1.x ?? 
         
     | 
| 
       2 
16 
     | 
    
         | 
| 
       3 
17 
     | 
    
         
             
            Features:
         
     | 
| 
       4 
18 
     | 
    
         
             
            - [329](https://github.com/graphiti-api/graphiti/pull/329) Propagate `extra_fields` to related resource links.
         
     | 
    
        data/Gemfile
    CHANGED
    
    
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # This file was generated by Appraisal
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            source "https://rubygems.org"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            gem "rails", "~> 7.1"
         
     | 
| 
      
 6 
     | 
    
         
            +
            gem "rspec-rails"
         
     | 
| 
      
 7 
     | 
    
         
            +
            gem "sqlite3", "~> 1.4.0"
         
     | 
| 
      
 8 
     | 
    
         
            +
            gem "database_cleaner"
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            group :test do
         
     | 
| 
      
 11 
     | 
    
         
            +
              gem "pry"
         
     | 
| 
      
 12 
     | 
    
         
            +
              gem "pry-byebug", platform: [:mri]
         
     | 
| 
      
 13 
     | 
    
         
            +
              gem "appraisal"
         
     | 
| 
      
 14 
     | 
    
         
            +
              gem "guard"
         
     | 
| 
      
 15 
     | 
    
         
            +
              gem "guard-rspec"
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            gemspec path: "../"
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # This file was generated by Appraisal
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            source "https://rubygems.org"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            gem "rails", "~> 7.1"
         
     | 
| 
      
 6 
     | 
    
         
            +
            gem "rspec-rails"
         
     | 
| 
      
 7 
     | 
    
         
            +
            gem "sqlite3", "~> 1.4.0"
         
     | 
| 
      
 8 
     | 
    
         
            +
            gem "database_cleaner"
         
     | 
| 
      
 9 
     | 
    
         
            +
            gem "graphiti-rails", "~> 0.4.0"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            group :test do
         
     | 
| 
      
 12 
     | 
    
         
            +
              gem "pry"
         
     | 
| 
      
 13 
     | 
    
         
            +
              gem "pry-byebug", platform: [:mri]
         
     | 
| 
      
 14 
     | 
    
         
            +
              gem "appraisal"
         
     | 
| 
      
 15 
     | 
    
         
            +
              gem "guard"
         
     | 
| 
      
 16 
     | 
    
         
            +
              gem "guard-rspec"
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            gemspec path: "../"
         
     | 
    
        data/lib/graphiti/debugger.rb
    CHANGED
    
    | 
         @@ -140,7 +140,6 @@ module Graphiti 
     | 
|
| 
       140 
140 
     | 
    
         
             
                    params ||= {}
         
     | 
| 
       141 
141 
     | 
    
         
             
                    params = params.to_unsafe_h if params.respond_to?(:to_unsafe_h)
         
     | 
| 
       142 
142 
     | 
    
         
             
                    params.reject! { |k, v| [:controller, :action, :format, :debug].include?(k.to_sym) }
         
     | 
| 
       143 
     | 
    
         
            -
                    params.reject! { |k, v| k.to_sym == :include }
         
     | 
| 
       144 
143 
     | 
    
         
             
                    params.deep_symbolize_keys
         
     | 
| 
       145 
144 
     | 
    
         
             
                  end
         
     | 
| 
       146 
145 
     | 
    
         | 
    
        data/lib/graphiti/query.rb
    CHANGED
    
    | 
         @@ -76,11 +76,14 @@ module Graphiti 
     | 
|
| 
       76 
76 
     | 
    
         
             
                  end
         
     | 
| 
       77 
77 
     | 
    
         
             
                end
         
     | 
| 
       78 
78 
     | 
    
         | 
| 
      
 79 
     | 
    
         
            +
                class RemoteSideloadResource < ::Graphiti::Resource
         
     | 
| 
      
 80 
     | 
    
         
            +
                  self.remote = "_remote_sideload_".freeze
         
     | 
| 
      
 81 
     | 
    
         
            +
                  self.abstract_class = true # exclude from schema
         
     | 
| 
      
 82 
     | 
    
         
            +
                end
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
       79 
84 
     | 
    
         
             
                def resource_for_sideload(sideload)
         
     | 
| 
       80 
85 
     | 
    
         
             
                  if @resource.remote?
         
     | 
| 
       81 
     | 
    
         
            -
                     
     | 
| 
       82 
     | 
    
         
            -
                      self.remote = "_remote_sideload_"
         
     | 
| 
       83 
     | 
    
         
            -
                    }.new
         
     | 
| 
      
 86 
     | 
    
         
            +
                    RemoteSideloadResource.new
         
     | 
| 
       84 
87 
     | 
    
         
             
                  else
         
     | 
| 
       85 
88 
     | 
    
         
             
                    sideload.resource
         
     | 
| 
       86 
89 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -68,7 +68,7 @@ module Graphiti 
     | 
|
| 
       68 
68 
     | 
    
         
             
                      model_ref = model
         
     | 
| 
       69 
69 
     | 
    
         
             
                      has_many name, opts do
         
     | 
| 
       70 
70 
     | 
    
         
             
                        params do |hash|
         
     | 
| 
       71 
     | 
    
         
            -
                          hash[:filter][:"#{as}_type"] = { 
     | 
| 
      
 71 
     | 
    
         
            +
                          hash[:filter][:"#{as}_type"] = {eql: model_ref.name}
         
     | 
| 
       72 
72 
     | 
    
         
             
                        end
         
     | 
| 
       73 
73 
     | 
    
         | 
| 
       74 
74 
     | 
    
         
             
                        instance_eval(&blk) if blk
         
     | 
| 
         @@ -82,7 +82,7 @@ module Graphiti 
     | 
|
| 
       82 
82 
     | 
    
         
             
                      model_ref = model
         
     | 
| 
       83 
83 
     | 
    
         
             
                      has_one name, opts do
         
     | 
| 
       84 
84 
     | 
    
         
             
                        params do |hash|
         
     | 
| 
       85 
     | 
    
         
            -
                          hash[:filter][:"#{as}_type"] = { 
     | 
| 
      
 85 
     | 
    
         
            +
                          hash[:filter][:"#{as}_type"] = {eql: model_ref.name}
         
     | 
| 
       86 
86 
     | 
    
         
             
                        end
         
     | 
| 
       87 
87 
     | 
    
         | 
| 
       88 
88 
     | 
    
         
             
                        instance_eval(&blk) if blk
         
     | 
| 
         @@ -153,11 +153,13 @@ module Graphiti 
     | 
|
| 
       153 
153 
     | 
    
         
             
                  success
         
     | 
| 
       154 
154 
     | 
    
         
             
                end
         
     | 
| 
       155 
155 
     | 
    
         | 
| 
       156 
     | 
    
         
            -
                def  
     | 
| 
      
 156 
     | 
    
         
            +
                def update
         
     | 
| 
       157 
157 
     | 
    
         
             
                  data
         
     | 
| 
       158 
158 
     | 
    
         
             
                  save(action: :update)
         
     | 
| 
       159 
159 
     | 
    
         
             
                end
         
     | 
| 
       160 
160 
     | 
    
         | 
| 
      
 161 
     | 
    
         
            +
                alias update_attributes update # standard:disable Style/Alias
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
       161 
163 
     | 
    
         
             
                def include_hash
         
     | 
| 
       162 
164 
     | 
    
         
             
                  @include_hash ||= begin
         
     | 
| 
       163 
165 
     | 
    
         
             
                    base = @payload ? @payload.include_hash : {}
         
     | 
    
        data/lib/graphiti/schema.rb
    CHANGED
    
    
| 
         @@ -193,14 +193,14 @@ module Graphiti 
     | 
|
| 
       193 
193 
     | 
    
         
             
                  # Find the quoted strings
         
     | 
| 
       194 
194 
     | 
    
         
             
                  quotes = value.scan(/{{.*?}}/)
         
     | 
| 
       195 
195 
     | 
    
         
             
                  # remove them from the rest
         
     | 
| 
       196 
     | 
    
         
            -
                  quotes. 
     | 
| 
      
 196 
     | 
    
         
            +
                  non_quotes = quotes.inject(value) { |v, q| v.gsub(q, "") }
         
     | 
| 
       197 
197 
     | 
    
         
             
                  # remove the quote characters from the quoted strings
         
     | 
| 
       198 
198 
     | 
    
         
             
                  quotes.each { |q| q.gsub!("{{", "").gsub!("}}", "") }
         
     | 
| 
       199 
199 
     | 
    
         
             
                  # merge everything back together into an array
         
     | 
| 
       200 
200 
     | 
    
         
             
                  value = if singular_filter
         
     | 
| 
       201 
     | 
    
         
            -
                    Array( 
     | 
| 
      
 201 
     | 
    
         
            +
                    Array(non_quotes) + quotes
         
     | 
| 
       202 
202 
     | 
    
         
             
                  else
         
     | 
| 
       203 
     | 
    
         
            -
                    Array( 
     | 
| 
      
 203 
     | 
    
         
            +
                    Array(non_quotes.split(",")) + quotes
         
     | 
| 
       204 
204 
     | 
    
         
             
                  end
         
     | 
| 
       205 
205 
     | 
    
         
             
                  # remove any blanks that are left
         
     | 
| 
       206 
206 
     | 
    
         
             
                  value.reject! { |v| v.length.zero? }
         
     | 
    
        data/lib/graphiti/util/link.rb
    CHANGED
    
    
| 
         @@ -118,7 +118,7 @@ module Graphiti 
     | 
|
| 
       118 
118 
     | 
    
         
             
                    cache_key = :"#{@sideload.object_id}-#{action}"
         
     | 
| 
       119 
119 
     | 
    
         
             
                    return if self.class.validated_link_cache.include?(cache_key)
         
     | 
| 
       120 
120 
     | 
    
         
             
                    prc = Graphiti.config.context_for_endpoint
         
     | 
| 
       121 
     | 
    
         
            -
                    unless prc.call(sideload.resource.endpoint[:full_path], action)
         
     | 
| 
      
 121 
     | 
    
         
            +
                    unless prc.call(sideload.resource.endpoint[:full_path].to_s, action)
         
     | 
| 
       122 
122 
     | 
    
         
             
                      raise Errors::InvalidLink.new(@resource_class, sideload, action)
         
     | 
| 
       123 
123 
     | 
    
         
             
                    end
         
     | 
| 
       124 
124 
     | 
    
         
             
                    self.class.validated_link_cache << cache_key
         
     | 
    
        data/lib/graphiti/version.rb
    CHANGED
    
    
    
        data/lib/graphiti.rb
    CHANGED
    
    | 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "json"
         
     | 
| 
       2 
2 
     | 
    
         
             
            require "forwardable"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "uri"
         
     | 
| 
       3 
4 
     | 
    
         
             
            require "active_support/core_ext/string"
         
     | 
| 
       4 
5 
     | 
    
         
             
            require "active_support/core_ext/enumerable"
         
     | 
| 
       5 
6 
     | 
    
         
             
            require "active_support/core_ext/class/attribute"
         
     | 
| 
         @@ -83,7 +84,12 @@ module Graphiti 
     | 
|
| 
       83 
84 
     | 
    
         
             
              end
         
     | 
| 
       84 
85 
     | 
    
         | 
| 
       85 
86 
     | 
    
         
             
              def self.log(msg, color = :white, bold = false)
         
     | 
| 
       86 
     | 
    
         
            -
                colored = ActiveSupport:: 
     | 
| 
      
 87 
     | 
    
         
            +
                colored = if ::ActiveSupport.version >= Gem::Version.new("7.1")
         
     | 
| 
      
 88 
     | 
    
         
            +
                  ActiveSupport::LogSubscriber.new.send(:color, msg, color, bold: bold)
         
     | 
| 
      
 89 
     | 
    
         
            +
                else
         
     | 
| 
      
 90 
     | 
    
         
            +
                  ActiveSupport::LogSubscriber.new.send(:color, msg, color, bold)
         
     | 
| 
      
 91 
     | 
    
         
            +
                end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
       87 
93 
     | 
    
         
             
                logger.debug(colored)
         
     | 
| 
       88 
94 
     | 
    
         
             
              end
         
     | 
| 
       89 
95 
     | 
    
         | 
| 
         @@ -131,7 +137,6 @@ require "graphiti/resource_proxy" 
     | 
|
| 
       131 
137 
     | 
    
         
             
            require "graphiti/request_validator"
         
     | 
| 
       132 
138 
     | 
    
         
             
            require "graphiti/request_validators/validator"
         
     | 
| 
       133 
139 
     | 
    
         
             
            require "graphiti/request_validators/update_validator"
         
     | 
| 
       134 
     | 
    
         
            -
            require "graphiti/query"
         
     | 
| 
       135 
140 
     | 
    
         
             
            require "graphiti/scope"
         
     | 
| 
       136 
141 
     | 
    
         
             
            require "graphiti/deserializer"
         
     | 
| 
       137 
142 
     | 
    
         
             
            require "graphiti/renderer"
         
     | 
| 
         @@ -170,6 +175,7 @@ require "graphiti/extensions/extra_attribute" 
     | 
|
| 
       170 
175 
     | 
    
         
             
            require "graphiti/extensions/boolean_attribute"
         
     | 
| 
       171 
176 
     | 
    
         
             
            require "graphiti/extensions/temp_id"
         
     | 
| 
       172 
177 
     | 
    
         
             
            require "graphiti/serializer"
         
     | 
| 
      
 178 
     | 
    
         
            +
            require "graphiti/query"
         
     | 
| 
       173 
179 
     | 
    
         
             
            require "graphiti/debugger"
         
     | 
| 
       174 
180 
     | 
    
         | 
| 
       175 
181 
     | 
    
         
             
            if defined?(ActiveRecord)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: graphiti
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.4.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Lee Richmond
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-03-17 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: jsonapi-serializable
         
     | 
| 
         @@ -212,6 +212,7 @@ executables: 
     | 
|
| 
       212 
212 
     | 
    
         
             
            extensions: []
         
     | 
| 
       213 
213 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       214 
214 
     | 
    
         
             
            files:
         
     | 
| 
      
 215 
     | 
    
         
            +
            - ".github/probots.yml"
         
     | 
| 
       215 
216 
     | 
    
         
             
            - ".github/workflows/ci.yml"
         
     | 
| 
       216 
217 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
       217 
218 
     | 
    
         
             
            - ".rspec"
         
     | 
| 
         @@ -251,6 +252,8 @@ files: 
     | 
|
| 
       251 
252 
     | 
    
         
             
            - gemfiles/rails_6.gemfile
         
     | 
| 
       252 
253 
     | 
    
         
             
            - gemfiles/rails_6_graphiti_rails.gemfile
         
     | 
| 
       253 
254 
     | 
    
         
             
            - gemfiles/rails_7.gemfile
         
     | 
| 
      
 255 
     | 
    
         
            +
            - gemfiles/rails_7_1.gemfile
         
     | 
| 
      
 256 
     | 
    
         
            +
            - gemfiles/rails_7_1_graphiti_rails.gemfile
         
     | 
| 
       254 
257 
     | 
    
         
             
            - gemfiles/rails_7_graphiti_rails.gemfile
         
     | 
| 
       255 
258 
     | 
    
         
             
            - graphiti.gemspec
         
     | 
| 
       256 
259 
     | 
    
         
             
            - lib/graphiti.rb
         
     | 
| 
         @@ -355,7 +358,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       355 
358 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       356 
359 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       357 
360 
     | 
    
         
             
            requirements: []
         
     | 
| 
       358 
     | 
    
         
            -
            rubygems_version: 3.3 
     | 
| 
      
 361 
     | 
    
         
            +
            rubygems_version: 3.5.3
         
     | 
| 
       359 
362 
     | 
    
         
             
            signing_key:
         
     | 
| 
       360 
363 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       361 
364 
     | 
    
         
             
            summary: Easily build jsonapi.org-compatible APIs
         
     |