rack-graphql 1.1.0 → 1.2.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9dd40d40ed2382e719c6800b9df0f155a3007d9c28cac18c56df5b31e48632c0
4
- data.tar.gz: c98f7a2d5d9964436db365c1c5209e4cefb08f56010fb674023adac01f3128c9
3
+ metadata.gz: cbb7b5de3d2e500fee04bf1820a5c37ffc64ad0a16abfae3055ec1e8aec3b2c3
4
+ data.tar.gz: 17d62e7a1b6649cdb5abce402401a18ba7ba44b1f12aeee1bcf8263f3e4c05a6
5
5
  SHA512:
6
- metadata.gz: 36ef93a32e777d2c9a56c92670eecc0453868063c0521f281ac2910a71dc7a1148d2242ba3feeed9df951c233964a989b23fcf9fd0bc8a66a011836a6c2a01dd
7
- data.tar.gz: cc2758913de2a10cf0f36dfd6c5beb4a06b516a72401c145a8fd0463332b35cfa4038c00787eaba46be7cce3b8b82d90de97c7e58405c33a628b1274724cb768
6
+ metadata.gz: ec64d07ae37fe8fbefa7060a0602d47d7a45f3f66c0e71100e9c604825271d8b81be2d98fb0efd3aa4b5c68be467d46991cccd4a7061a245843b820aec45e557
7
+ data.tar.gz: 6bdf228ad21ddc91ff1a1ebc2eb966d797ea274d1e893e695f783a304ad497028b76384a764841bb57e99614cc9f61cbd07a9cd527968e041d875134cc862da2
@@ -0,0 +1,11 @@
1
+ version: 1
2
+
3
+ update_configs:
4
+ - package_manager: "ruby:bundler"
5
+ directory: "/"
6
+ update_schedule: "monthly"
7
+ commit_message:
8
+ prefix: "[dependabot]"
9
+ allowed_updates:
10
+ - match:
11
+ update_type: "all"
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to track an issue that has been identified
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Mutation/Query**
24
+
25
+ **URL and HTTP method (for non-GQL):**
26
+
27
+ **Sentry or Logs URL:**
28
+
29
+ **User/authentication details**
30
+ Impacted user name or service account
31
+
32
+ **Additional context**
33
+ Add any other context about the problem here.
@@ -0,0 +1 @@
1
+ blank_issues_enabled: false
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: New story
3
+ about: Add a new story for implementation
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the solution**
11
+ A clear and concise description of what you want to happen.
12
+ When will this feature be done?
13
+
14
+ **Describe the users**
15
+ Who are we building this feature for?
16
+
17
+ **Additional context**
18
+ Add any other context or screenshots about the feature request here.
19
+ Link to any applicable documents describing the feature.
20
+
21
+ **Designs**
22
+ Link to any applicable designs on Invision.
@@ -0,0 +1,18 @@
1
+ ## Description
2
+ <!--- Describe your changes in detail -->
3
+
4
+ ## Related issue(s)
5
+ <!--- GH issue number -->
6
+
7
+ ## Motivation and Context
8
+ <!--- Why is this change required? What problem does it solve? -->
9
+ <!--- If it fixes an open issue, please link to the issue here. -->
10
+
11
+ ## How Has This Been Tested?
12
+ <!--- Please describe in detail how you tested your changes. -->
13
+
14
+ ## Screenshots (if appropriate):
15
+ <!--- Please add any screenshots of the feature. -->
16
+
17
+ ## Related PRs
18
+ <!--- Please add links to any related PRs (backend, component packages, etc). -->
@@ -0,0 +1,16 @@
1
+ # automatically approve PRs submitted by Dependabot
2
+ # this will allow Dependabot to automatically merge dependency update PRs where CI passes
3
+ # from: https://github.com/hmarr/auto-approve-action
4
+ name: Auto approve Dependabot PRs
5
+
6
+ on:
7
+ pull_request
8
+
9
+ jobs:
10
+ auto-approve:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: hmarr/auto-approve-action@v2.0.0
14
+ if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
15
+ with:
16
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
@@ -3,8 +3,9 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.5
7
6
  - 2.6
7
+ - 2.7
8
8
  before_install: gem install bundler
9
9
  script:
10
- - bundle exec rake
10
+ - bundle exec rake rubocop
11
+ - bundle exec rake spec
@@ -1,56 +1,63 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-graphql (1.1.0)
5
- graphql (>= 1.9.0)
4
+ rack-graphql (1.2.5)
5
+ graphql (~> 1.9)
6
6
  oj
7
- rack (>= 2.0.0)
7
+ rack (~> 2.0)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- ast (2.4.0)
13
- coderay (1.1.2)
14
- diff-lcs (1.3)
15
- graphql (1.9.17)
16
- jaro_winkler (1.5.4)
17
- method_source (0.9.2)
18
- oj (3.10.0)
19
- parallel (1.19.1)
20
- parser (2.7.0.1)
21
- ast (~> 2.4.0)
22
- pry (0.12.2)
23
- coderay (~> 1.1.0)
24
- method_source (~> 0.9.0)
25
- rack (2.0.8)
12
+ ast (2.4.1)
13
+ coderay (1.1.3)
14
+ diff-lcs (1.4.4)
15
+ graphql (1.11.4)
16
+ method_source (1.0.0)
17
+ oj (3.10.13)
18
+ parallel (1.19.2)
19
+ parser (2.7.1.4)
20
+ ast (~> 2.4.1)
21
+ pry (0.13.1)
22
+ coderay (~> 1.1)
23
+ method_source (~> 1.0)
24
+ rack (2.2.3)
26
25
  rack-test (1.1.0)
27
26
  rack (>= 1.0, < 3)
28
27
  rainbow (3.0.0)
29
28
  rake (13.0.1)
29
+ regexp_parser (1.7.1)
30
+ rexml (3.2.4)
30
31
  rspec (3.9.0)
31
32
  rspec-core (~> 3.9.0)
32
33
  rspec-expectations (~> 3.9.0)
33
34
  rspec-mocks (~> 3.9.0)
34
- rspec-core (3.9.1)
35
- rspec-support (~> 3.9.1)
36
- rspec-expectations (3.9.0)
35
+ rspec-core (3.9.2)
36
+ rspec-support (~> 3.9.3)
37
+ rspec-expectations (3.9.2)
37
38
  diff-lcs (>= 1.2.0, < 2.0)
38
39
  rspec-support (~> 3.9.0)
39
40
  rspec-mocks (3.9.1)
40
41
  diff-lcs (>= 1.2.0, < 2.0)
41
42
  rspec-support (~> 3.9.0)
42
- rspec-support (3.9.2)
43
- rubocop (0.78.0)
44
- jaro_winkler (~> 1.5.1)
43
+ rspec-support (3.9.3)
44
+ rubocop (0.90.0)
45
45
  parallel (~> 1.10)
46
- parser (>= 2.6)
46
+ parser (>= 2.7.1.1)
47
47
  rainbow (>= 2.2.2, < 4.0)
48
+ regexp_parser (>= 1.7)
49
+ rexml
50
+ rubocop-ast (>= 0.3.0, < 1.0)
48
51
  ruby-progressbar (~> 1.7)
49
- unicode-display_width (>= 1.4.0, < 1.7)
50
- rubocop-performance (1.5.2)
51
- rubocop (>= 0.71.0)
52
+ unicode-display_width (>= 1.4.0, < 2.0)
53
+ rubocop-ast (0.3.0)
54
+ parser (>= 2.7.1.4)
55
+ rubocop-performance (1.7.1)
56
+ rubocop (>= 0.82.0)
57
+ rubocop-rspec (1.43.2)
58
+ rubocop (~> 0.87)
52
59
  ruby-progressbar (1.10.1)
53
- unicode-display_width (1.6.0)
60
+ unicode-display_width (1.7.0)
54
61
 
55
62
  PLATFORMS
56
63
  ruby
@@ -64,6 +71,7 @@ DEPENDENCIES
64
71
  rspec
65
72
  rubocop
66
73
  rubocop-performance
74
+ rubocop-rspec
67
75
 
68
76
  BUNDLED WITH
69
- 2.0.2
77
+ 2.1.4
data/Rakefile CHANGED
@@ -5,4 +5,4 @@ require 'rubocop/rake_task'
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
  RuboCop::RakeTask.new
7
7
 
8
- task default: %i[rubocop spec]
8
+ task default: %i[rubocop:auto_correct spec]
@@ -1,9 +1,9 @@
1
- require 'json'
2
1
  require 'oj'
3
2
  require 'rack'
4
3
  require 'graphql'
5
4
 
6
5
  require 'rack_graphql/version'
6
+ require 'rack_graphql/exceptions'
7
7
  require 'rack_graphql/health_response_builder'
8
8
  require 'rack_graphql/middleware'
9
9
  require 'rack_graphql/application'
@@ -0,0 +1,3 @@
1
+ module RackGraphql
2
+ AmbiguousParamError = Class.new(ArgumentError)
3
+ end
@@ -18,13 +18,13 @@ module RackGraphql
18
18
  end
19
19
 
20
20
  def body
21
- JSON.generate(
22
- status: :ok,
23
- request_ip: request.ip,
24
- app_name: app_name,
25
- app_env: ENV['RACK_ENV'],
26
- host: ENV['HOSTNAME'],
27
- revision: ENV['REVISION']
21
+ Oj.dump(
22
+ 'status' => 'ok',
23
+ 'request_ip' => request.ip,
24
+ 'app_name' => app_name,
25
+ 'app_env' => ENV['RACK_ENV'],
26
+ 'host' => ENV['HOSTNAME'],
27
+ 'revision' => ENV['REVISION']
28
28
  )
29
29
  end
30
30
  end
@@ -13,15 +13,15 @@ module RackGraphql
13
13
 
14
14
  return [400, {}, []] unless params.is_a?(Hash)
15
15
 
16
- variables = ensure_hash(params['variables'])
16
+ variables = ensure_hash(params['variables'])
17
17
  operation_name = params['operationName']
18
- context = context_handler.call(env)
18
+ context = context_handler.call(env)
19
19
 
20
20
  log("Executing with params: #{params.inspect}, operationName: #{operation_name}, variables: #{variables.inspect}")
21
21
  result = execute(params: params, operation_name: operation_name, variables: variables, context: context)
22
22
 
23
23
  [200, response_headers(result), [response_body(result)]]
24
- rescue ArgumentError => e
24
+ rescue AmbiguousParamError => e
25
25
  log("Responded with #{e.class} because of #{e.message}")
26
26
  [400, { 'Content-Type' => 'application/json' }, [Oj.dump({})]]
27
27
  ensure
@@ -37,7 +37,7 @@ module RackGraphql
37
37
  end
38
38
 
39
39
  def post_data(env)
40
- ::Oj.load(env['rack.input'].gets)
40
+ ::Oj.load(env['rack.input'].gets.to_s)
41
41
  rescue Oj::ParseError
42
42
  nil
43
43
  end
@@ -51,14 +51,14 @@ module RackGraphql
51
51
  begin
52
52
  ensure_hash(Oj.load(ambiguous_param))
53
53
  rescue Oj::ParseError
54
- raise ArgumentError, "Unexpected parameter: #{ambiguous_param}"
54
+ raise AmbiguousParamError, "Unexpected parameter: #{ambiguous_param}"
55
55
  end
56
56
  when Hash
57
57
  ambiguous_param
58
58
  when nil
59
59
  {}
60
60
  else
61
- fail ArgumentError, "Unexpected parameter: #{ambiguous_param}"
61
+ fail AmbiguousParamError, "Unexpected parameter: #{ambiguous_param}"
62
62
  end
63
63
  end
64
64
 
@@ -1,3 +1,3 @@
1
1
  module RackGraphql
2
- VERSION = '1.1.0'.freeze
2
+ VERSION = '1.2.5'.freeze
3
3
  end
@@ -3,14 +3,14 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
  require 'rack_graphql/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'rack-graphql'
7
- spec.version = RackGraphql::VERSION
8
- spec.authors = ['Krzysztof Knapik', 'RenoFi Engineering Team']
9
- spec.email = ['knapo@knapo.net', 'engineering@renofi.com']
6
+ spec.name = 'rack-graphql'
7
+ spec.version = RackGraphql::VERSION
8
+ spec.authors = ['Krzysztof Knapik', 'RenoFi Engineering Team']
9
+ spec.email = ['knapo@knapo.net', 'engineering@renofi.com']
10
10
 
11
- spec.summary = 'Rack middleware implementing graphql endpoint.'
11
+ spec.summary = 'Rack middleware implementing graphql endpoint.'
12
12
  spec.homepage = 'https://github.com/RenoFi/rack-graphql'
13
- spec.license = 'MIT'
13
+ spec.license = 'MIT'
14
14
 
15
15
  spec.metadata['homepage_uri'] = 'https://github.com/RenoFi/rack-graphql'
16
16
  spec.metadata['source_code_uri'] = 'https://github.com/RenoFi/rack-graphql'
@@ -18,15 +18,15 @@ Gem::Specification.new do |spec|
18
18
  spec.files = Dir.chdir(__dir__) do
19
19
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin/|spec/|\.rub)}) }
20
20
  end
21
- spec.bindir = 'exe'
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.required_ruby_version = '>= 2.5'
25
+ spec.required_ruby_version = '>= 2.6'
26
26
 
27
- spec.add_dependency 'graphql', '>= 1.9.0'
27
+ spec.add_dependency 'graphql', '~> 1.9'
28
28
  spec.add_dependency 'oj'
29
- spec.add_dependency 'rack', '>= 2.0.0'
29
+ spec.add_dependency 'rack', '~> 2.0'
30
30
 
31
31
  spec.add_development_dependency 'bundler'
32
32
  spec.add_development_dependency 'pry'
@@ -35,4 +35,5 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency 'rspec'
36
36
  spec.add_development_dependency 'rubocop'
37
37
  spec.add_development_dependency 'rubocop-performance'
38
+ spec.add_development_dependency 'rubocop-rspec'
38
39
  end
metadata CHANGED
@@ -1,30 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
8
8
  - RenoFi Engineering Team
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-01-02 00:00:00.000000000 Z
12
+ date: 2020-09-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: graphql
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 1.9.0
20
+ version: '1.9'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 1.9.0
27
+ version: '1.9'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: oj
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -43,16 +43,16 @@ dependencies:
43
43
  name: rack
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 2.0.0
48
+ version: '2.0'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ">="
53
+ - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: 2.0.0
55
+ version: '2.0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: bundler
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -151,7 +151,21 @@ dependencies:
151
151
  - - ">="
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
- description:
154
+ - !ruby/object:Gem::Dependency
155
+ name: rubocop-rspec
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ description:
155
169
  email:
156
170
  - knapo@knapo.net
157
171
  - engineering@renofi.com
@@ -159,6 +173,12 @@ executables: []
159
173
  extensions: []
160
174
  extra_rdoc_files: []
161
175
  files:
176
+ - ".dependabot/config.yml"
177
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
178
+ - ".github/ISSUE_TEMPLATE/config.yml"
179
+ - ".github/ISSUE_TEMPLATE/story.md"
180
+ - ".github/PULL_REQUEST_TEMPLATE.md"
181
+ - ".github/workflows/auto-approve.yml"
162
182
  - ".gitignore"
163
183
  - ".rspec"
164
184
  - ".travis.yml"
@@ -170,6 +190,7 @@ files:
170
190
  - lib/rack-graphql.rb
171
191
  - lib/rack_graphql.rb
172
192
  - lib/rack_graphql/application.rb
193
+ - lib/rack_graphql/exceptions.rb
173
194
  - lib/rack_graphql/health_response_builder.rb
174
195
  - lib/rack_graphql/middleware.rb
175
196
  - lib/rack_graphql/version.rb
@@ -180,7 +201,7 @@ licenses:
180
201
  metadata:
181
202
  homepage_uri: https://github.com/RenoFi/rack-graphql
182
203
  source_code_uri: https://github.com/RenoFi/rack-graphql
183
- post_install_message:
204
+ post_install_message:
184
205
  rdoc_options: []
185
206
  require_paths:
186
207
  - lib
@@ -188,15 +209,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
188
209
  requirements:
189
210
  - - ">="
190
211
  - !ruby/object:Gem::Version
191
- version: '2.5'
212
+ version: '2.6'
192
213
  required_rubygems_version: !ruby/object:Gem::Requirement
193
214
  requirements:
194
215
  - - ">="
195
216
  - !ruby/object:Gem::Version
196
217
  version: '0'
197
218
  requirements: []
198
- rubygems_version: 3.0.6
199
- signing_key:
219
+ rubygems_version: 3.1.2
220
+ signing_key:
200
221
  specification_version: 4
201
222
  summary: Rack middleware implementing graphql endpoint.
202
223
  test_files: []