graphql-pundit 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b43400b6b949a08dc35c26cd42b42b164928291a
4
- data.tar.gz: 04b488cd1da37c302fe8cf69f8f214cbc59d441c
3
+ metadata.gz: a644c29c51d4a66d193bc9417a85b22b9573c495
4
+ data.tar.gz: c913a8f1fe165bf091dbc3a20dfd29074a237601
5
5
  SHA512:
6
- metadata.gz: 980afb0446cc26117a1ffdb11c619d8d157cf24d1aeb41e6474f6618d22679d0fd4d3d225d91ac4d9121e8b3cfe851ba15f9a0f126352717754389bbac94dcef
7
- data.tar.gz: 0bf87b21c14a0545cdf32c83763aa9ed8336d399dd404ac9a308efc836b9049134c1559a3ffd9d52d33106cdc0abb2e1db4ff97b34fd00ffbb8ccbe1465f9d54
6
+ metadata.gz: 9ab7475fa807ec3ac98123d462a2e86894fdd3f3c10f0d4bd90e1de668ec74c73b97026e1fd8b6a8a12f9ca0afbcee75b95891acae9382713b0a32bbc3ee0b7a
7
+ data.tar.gz: f062e98925ee41433ef60d6d04ed660109d07dbcf806489d020ac9c0481200f9822ef58305d82306d2677e5ded5573726c4351705276bcd78374f8c6eb0a7a77
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
- --format documentation
2
1
  --color
2
+ --format Fuubar
3
+ --require spec_helper
@@ -16,13 +16,11 @@ AllCops:
16
16
  TargetRubyVersion: 2.4
17
17
  # Include common Ruby source files.
18
18
  Include:
19
- - '**/*.gemspec'
20
19
  - '**/*.podspec'
21
20
  - '**/*.jbuilder'
22
21
  - '**/*.rake'
23
22
  - '**/*.opal'
24
23
  - '**/config.ru'
25
- - '**/Gemfile'
26
24
  - '**/Rakefile'
27
25
  - '**/Capfile'
28
26
  - '**/Guardfile'
@@ -35,6 +33,8 @@ AllCops:
35
33
  - '**/Fastfile'
36
34
  - '**/*Fastfile'
37
35
  Exclude:
36
+ - '**/*.gemspec'
37
+ - '**/Gemfile'
38
38
  - 'bin/bundle'
39
39
  - 'bin/rails'
40
40
  - 'bin/rake'
@@ -471,17 +471,6 @@ Style/EmptyMethod:
471
471
  - compact
472
472
  - expanded
473
473
 
474
- # Checks whether the source file has a utf-8 encoding comment or not
475
- # AutoCorrectEncodingComment must match the regex
476
- # /#.*coding\s?[:=]\s?(?:UTF|utf)-8/
477
- Style/Encoding:
478
- EnforcedStyle: never
479
- SupportedStyles:
480
- - when_needed
481
- - always
482
- - never
483
- AutoCorrectEncodingComment: '# encoding: utf-8'
484
-
485
474
  Layout/EndOfLine:
486
475
  # The `native` style means that CR+LF (Carriage Return + Line Feed) is
487
476
  # enforced on Windows, and LF is enforced on other platforms. The other styles
@@ -500,7 +489,7 @@ Layout/ExtraSpacing:
500
489
  # When true, forces the alignment of `=` in assignments on consecutive lines.
501
490
  ForceEqualSignAlignment: false
502
491
 
503
- Style/FileName:
492
+ Naming/FileName:
504
493
  # File names listed in `AllCops:Include` are excluded by default. Add extra
505
494
  # excludes here.
506
495
  Exclude: ['lib/graphql-pundit.rb']
@@ -731,7 +720,7 @@ Style/MethodDefParentheses:
731
720
  - require_no_parentheses
732
721
  - require_no_parentheses_except_multiline
733
722
 
734
- Style/MethodName:
723
+ Naming/MethodName:
735
724
  EnforcedStyle: snake_case
736
725
  SupportedStyles:
737
726
  - snake_case
@@ -902,7 +891,7 @@ Style/PercentQLiterals:
902
891
  - lower_case_q # Use `%q` when possible, `%Q` when necessary
903
892
  - upper_case_q # Always use `%Q`
904
893
 
905
- Style/PredicateName:
894
+ Naming/PredicateName:
906
895
  # Predicate name prefixes.
907
896
  NamePrefix:
908
897
  - is_
@@ -1169,13 +1158,13 @@ Style/TrivialAccessors:
1169
1158
  - to_s
1170
1159
  - to_sym
1171
1160
 
1172
- Style/VariableName:
1161
+ Naming/VariableName:
1173
1162
  EnforcedStyle: snake_case
1174
1163
  SupportedStyles:
1175
1164
  - snake_case
1176
1165
  - camelCase
1177
1166
 
1178
- Style/VariableNumber:
1167
+ Naming/VariableNumber:
1179
1168
  EnforcedStyle: normalcase
1180
1169
  SupportedStyles:
1181
1170
  - snake_case
@@ -338,13 +338,59 @@ Layout/TrailingWhitespace:
338
338
  StyleGuide: '#no-trailing-whitespace'
339
339
  Enabled: true
340
340
 
341
- #################### Style ###############################
341
+ #################### Naming ##############################
342
342
 
343
- Style/AccessorMethodName:
343
+ Naming/AccessorMethodName:
344
344
  Description: Check the naming of accessor methods for get_/set_.
345
345
  StyleGuide: '#accessor_mutator_method_names'
346
346
  Enabled: true
347
347
 
348
+ Naming/AsciiIdentifiers:
349
+ Description: 'Use only ascii symbols in identifiers.'
350
+ StyleGuide: '#english-identifiers'
351
+ Enabled: true
352
+
353
+ Naming/BinaryOperatorParameterName:
354
+ Description: 'When defining binary operators, name the argument other.'
355
+ StyleGuide: '#other-arg'
356
+ Enabled: true
357
+
358
+ Naming/ClassAndModuleCamelCase:
359
+ Description: 'Use CamelCase for classes and modules.'
360
+ StyleGuide: '#camelcase-classes'
361
+ Enabled: true
362
+
363
+ Naming/ConstantName:
364
+ Description: 'Constants should use SCREAMING_SNAKE_CASE.'
365
+ StyleGuide: '#screaming-snake-case'
366
+ Enabled: true
367
+
368
+ Naming/FileName:
369
+ Description: 'Use snake_case for source file names.'
370
+ StyleGuide: '#snake-case-files'
371
+ Enabled: true
372
+
373
+ Naming/MethodName:
374
+ Description: 'Use the configured style when naming methods.'
375
+ StyleGuide: '#snake-case-symbols-methods-vars'
376
+ Enabled: true
377
+
378
+ Naming/PredicateName:
379
+ Description: 'Check the names of predicate methods.'
380
+ StyleGuide: '#bool-methods-qmark'
381
+ Enabled: true
382
+
383
+ Naming/VariableName:
384
+ Description: 'Use the configured style when naming variables.'
385
+ StyleGuide: '#snake-case-symbols-methods-vars'
386
+ Enabled: true
387
+
388
+ Naming/VariableNumber:
389
+ Description: 'Use the configured style when numbering variables.'
390
+ Enabled: true
391
+
392
+ #################### Style ###############################
393
+
348
394
  Style/Alias:
349
395
  Description: 'Use alias instead of alias_method.'
350
396
  StyleGuide: '#alias-method'
@@ -365,11 +411,6 @@ Style/AsciiComments:
365
411
  StyleGuide: '#english-comments'
366
412
  Enabled: true
367
413
 
368
- Style/AsciiIdentifiers:
369
- Description: 'Use only ascii symbols in identifiers.'
370
- StyleGuide: '#english-identifiers'
371
- Enabled: true
372
-
373
414
  Style/Attr:
374
415
  Description: 'Checks for uses of Module#attr.'
375
416
  StyleGuide: '#attr'
@@ -412,11 +453,6 @@ Style/CharacterLiteral:
412
453
  StyleGuide: '#no-character-literals'
413
454
  Enabled: true
414
455
 
415
- Style/ClassAndModuleCamelCase:
416
- Description: 'Use CamelCase for classes and modules.'
417
- StyleGuide: '#camelcase-classes'
418
- Enabled: true
419
-
420
456
  Style/ClassAndModuleChildren:
421
457
  Description: 'Checks style of children classes and modules.'
422
458
  Enabled: true
@@ -459,11 +495,6 @@ Style/ConditionalAssignment:
459
495
  of assigning that variable inside of each branch.
460
496
  Enabled: true
461
497
 
462
- Style/ConstantName:
463
- Description: 'Constants should use SCREAMING_SNAKE_CASE.'
464
- StyleGuide: '#screaming-snake-case'
465
- Enabled: true
466
-
467
498
  Style/DefWithParentheses:
468
499
  Description: 'Use def with parentheses when there are arguments.'
469
500
  StyleGuide: '#method-parens'
@@ -519,11 +550,6 @@ Style/EvenOdd:
519
550
  StyleGuide: '#predicate-methods'
520
551
  Enabled: true
521
552
 
522
- Style/FileName:
523
- Description: 'Use snake_case for source file names.'
524
- StyleGuide: '#snake-case-files'
525
- Enabled: true
526
-
527
553
  Style/FrozenStringLiteralComment:
528
554
  Description: >-
529
555
  Add the frozen_string_literal comment to the top of files
@@ -634,11 +660,6 @@ Style/MethodDefParentheses:
634
660
  StyleGuide: '#method-parens'
635
661
  Enabled: true
636
662
 
637
- Style/MethodName:
638
- Description: 'Use the configured style when naming methods.'
639
- StyleGuide: '#snake-case-symbols-methods-vars'
640
- Enabled: true
641
-
642
663
  Style/MethodMissing:
643
664
  Description: 'Avoid using `method_missing`.'
644
665
  StyleGuide: '#no-method-missing'
@@ -768,11 +789,6 @@ Style/OneLineConditional:
768
789
  StyleGuide: '#ternary-operator'
769
790
  Enabled: true
770
791
 
771
- Style/OpMethod:
772
- Description: 'When defining binary operators, name the argument other.'
773
- StyleGuide: '#other-arg'
774
- Enabled: true
775
-
776
792
  Style/OptionalArguments:
777
793
  Description: >-
778
794
  Checks for optional arguments that do not appear at the end
@@ -809,11 +825,6 @@ Style/PerlBackrefs:
809
825
  StyleGuide: '#no-perl-regexp-last-matchers'
810
826
  Enabled: true
811
827
 
812
- Style/PredicateName:
813
- Description: 'Check the names of predicate methods.'
814
- StyleGuide: '#bool-methods-qmark'
815
- Enabled: true
816
-
817
828
  Style/PreferredHashMethods:
818
829
  Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
819
830
  StyleGuide: '#hash-key'
@@ -988,15 +999,6 @@ Style/VariableInterpolation:
988
999
  StyleGuide: '#curlies-interpolate'
989
1000
  Enabled: true
990
1001
 
991
- Style/VariableName:
992
- Description: 'Use the configured style when naming variables.'
993
- StyleGuide: '#snake-case-symbols-methods-vars'
994
- Enabled: true
995
-
996
- Style/VariableNumber:
997
- Description: 'Use the configured style when numbering variables.'
998
- Enabled: true
999
-
1000
1002
  Style/WhenThen:
1001
1003
  Description: 'Use when x then ... for one-line cases.'
1002
1004
  StyleGuide: '#one-line-cases'
@@ -1217,16 +1219,6 @@ Lint/InheritException:
1217
1219
  Description: 'Avoid inheriting from the `Exception` class.'
1218
1220
  Enabled: true
1219
1221
 
1220
- Lint/InvalidCharacterLiteral:
1221
- Description: >-
1222
- Checks for invalid character literals with a non-escaped
1223
- whitespace character.
1224
- Enabled: true
1225
-
1226
- Lint/LiteralInCondition:
1227
- Description: 'Checks of literals used in conditions.'
1228
- Enabled: true
1229
-
1230
1222
  Lint/LiteralInInterpolation:
1231
1223
  Description: 'Checks for literals used in interpolation.'
1232
1224
  Enabled: true
@@ -1,15 +1,21 @@
1
- sudo: required
1
+ sudo: false
2
2
  dist: trusty
3
3
 
4
4
  language: ruby
5
5
 
6
6
  rvm:
7
7
  - 2.2.7
8
- - 2.3.4
8
+ - 2.3.5
9
9
  - 2.4.2
10
+ - 2.5.0
10
11
 
11
12
  notifications:
12
13
  email: false
13
14
 
15
+ matrix:
16
+ fast_finish: true
17
+ allow_failures:
18
+ - rvm: 2.5.0
19
+
14
20
  script:
15
- - bundle exec rake
21
+ - bundle exec rspec --format progress
data/README.md CHANGED
@@ -83,6 +83,8 @@ field :createUser
83
83
  end
84
84
  ```
85
85
 
86
+ You can also pass a `lambda` as a record. This receives the usual three arguments (parent value, arguments, context) and returns the value to be used as a record.
87
+
86
88
  You might have also noticed the use of `authorize!` instead of `authorize` in this example. The difference between the two is this:
87
89
 
88
90
  - `authorize` will set the field to `nil` if authorization fails
@@ -26,11 +26,15 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency 'graphql', '>= 1.6.4', '< 1.8.0'
27
27
  spec.add_dependency 'pundit', '~> 1.1.0'
28
28
 
29
- spec.add_development_dependency 'pry', '~> 0.11.0'
30
29
  spec.add_development_dependency 'bundler', '~> 1.14'
30
+ spec.add_development_dependency 'codecov', '~> 0.1.10'
31
+ spec.add_development_dependency 'fuubar', '~> 2.2.0'
32
+ spec.add_development_dependency 'pry', '~> 0.11.0'
33
+ spec.add_development_dependency 'pry-byebug', '~> 3.5.0'
34
+ spec.add_development_dependency 'pry-rescue', '~> 1.4.4'
35
+ spec.add_development_dependency 'pry-stack_explorer', '~> 0.4.9.2'
31
36
  spec.add_development_dependency 'rake', '~> 12.0'
32
37
  spec.add_development_dependency 'rspec', '~> 3.6'
33
- spec.add_development_dependency 'rubocop', '~> 0.50.0'
38
+ spec.add_development_dependency 'rubocop', '~> 0.51.0'
34
39
  spec.add_development_dependency 'simplecov', '~> 0.15.1'
35
- spec.add_development_dependency 'codecov', '~> 0.1.10'
36
40
  end
@@ -5,10 +5,17 @@ require 'graphql-pundit/version'
5
5
 
6
6
  require 'graphql'
7
7
 
8
- # Define `authorize` and `authorize!` helpers
8
+ # Defines authorization related helpers
9
9
  module GraphQL
10
- def self.assign_authorize(raise_unauthorized)
11
- lambda do |defn, query = nil, policy: nil, record: nil|
10
+ # Defines `authorize` and `authorize!` helpers
11
+ class AuthorizationHelper
12
+ attr_reader :raise_unauthorized
13
+
14
+ def initialize(raise_unauthorized)
15
+ @raise_unauthorized = raise_unauthorized
16
+ end
17
+
18
+ def call(defn, query = nil, policy: nil, record: nil)
12
19
  opts = {record: record,
13
20
  query: query || defn.name,
14
21
  policy: policy,
@@ -21,14 +28,15 @@ module GraphQL
21
28
  end
22
29
  end
23
30
 
24
- def self.assign_scope
25
- lambda do |defn, proc = :infer_scope|
31
+ # Defines `scope` helper
32
+ class ScopeHelper
33
+ def call(defn, proc = :infer_scope)
26
34
  Define::InstanceDefinable::AssignMetadataKey.new(:scope).
27
35
  call(defn, proc)
28
36
  end
29
37
  end
30
38
 
31
- Field.accepts_definitions(authorize: assign_authorize(false),
32
- authorize!: assign_authorize(true),
33
- scope: assign_scope)
39
+ Field.accepts_definitions(authorize: AuthorizationHelper.new(false),
40
+ authorize!: AuthorizationHelper.new(true),
41
+ scope: ScopeHelper.new)
34
42
  end
@@ -7,6 +7,55 @@ module GraphQL
7
7
  module Instrumenters
8
8
  # Instrumenter that supplies `authorize`
9
9
  class Authorization
10
+ # This does the actual Pundit authorization
11
+ class AuthorizationResolver
12
+ attr_reader :current_user, :old_resolver, :options
13
+ def initialize(current_user, old_resolver, options)
14
+ @current_user = current_user
15
+ @old_resolver = old_resolver
16
+ @options = options
17
+ end
18
+
19
+ def call(root, arguments, context)
20
+ unless authorize(root, arguments, context)
21
+ raise ::Pundit::NotAuthorizedError
22
+ end
23
+ old_resolver.call(root, arguments, context)
24
+ rescue ::Pundit::NotAuthorizedError
25
+ if options[:raise]
26
+ raise GraphQL::ExecutionError, "You're not authorized to do this"
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def authorize(root, arguments, context)
33
+ if options[:proc]
34
+ options[:proc].call(root, arguments, context)
35
+ else
36
+ record = record(root, arguments, context)
37
+ ::Pundit::PolicyFinder.new(policy(record)).policy!.
38
+ new(context[current_user], record).public_send(query)
39
+ end
40
+ end
41
+
42
+ def query
43
+ @query ||= options[:query].to_s + '?'
44
+ end
45
+
46
+ def policy(record)
47
+ options[:policy] || record
48
+ end
49
+
50
+ def record(root, arguments, context)
51
+ if options[:record].respond_to?(:call)
52
+ options[:record].call(root, arguments, context)
53
+ else
54
+ options[:record] || root
55
+ end
56
+ end
57
+ end
58
+
10
59
  attr_reader :current_user
11
60
 
12
61
  def initialize(current_user = :current_user)
@@ -15,42 +64,12 @@ module GraphQL
15
64
 
16
65
  def instrument(_type, field)
17
66
  return field unless field.metadata[:authorize]
18
- old_resolve = field.resolve_proc
19
- resolve_proc = resolve_proc(current_user,
20
- old_resolve,
21
- field.metadata[:authorize])
67
+ old_resolver = field.resolve_proc
68
+ resolver = AuthorizationResolver.new(current_user,
69
+ old_resolver,
70
+ field.metadata[:authorize])
22
71
  field.redefine do
23
- resolve resolve_proc
24
- end
25
- end
26
-
27
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
28
- def resolve_proc(current_user, old_resolve, options)
29
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
30
- lambda do |obj, args, ctx|
31
- begin
32
- result = if options[:proc]
33
- options[:proc].call(obj, args, ctx)
34
- else
35
- query = options[:query].to_s + '?'
36
- record = options[:record] || obj
37
- policy = options[:policy] || record
38
- policy = ::Pundit::PolicyFinder.new(policy).policy!
39
- policy = policy.new(ctx[current_user], record)
40
- policy.public_send(query)
41
- end
42
- unless result
43
- raise ::Pundit::NotAuthorizedError, query: query,
44
- record: record,
45
- policy: policy
46
- end
47
- old_resolve.call(obj, args, ctx)
48
- rescue ::Pundit::NotAuthorizedError
49
- if options[:raise]
50
- raise GraphQL::ExecutionError,
51
- "You're not authorized to do this"
52
- end
53
- end
72
+ resolve resolver
54
73
  end
55
74
  end
56
75
  end
@@ -7,52 +7,69 @@ module GraphQL
7
7
  module Instrumenters
8
8
  # Instrumenter that supplies `scope`
9
9
  class Scope
10
- attr_reader :current_user
10
+ # Applies the scoping to the passed object
11
+ class ScopeResolver
12
+ attr_reader :current_user, :scope, :old_resolver
11
13
 
12
- def initialize(current_user = :current_user)
13
- @current_user = current_user
14
- end
14
+ def initialize(current_user, scope, old_resolver)
15
+ @current_user = current_user
16
+ @old_resolver = old_resolver
15
17
 
16
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
17
- def instrument(_type, field)
18
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
19
- scope = field.metadata[:scope]
20
- return field unless scope
21
- unless valid_value?(scope)
22
- raise ArgumentError, 'Invalid value passed to `scope`'
18
+ unless valid_value?(scope)
19
+ raise ArgumentError, 'Invalid value passed to `scope`'
20
+ end
21
+
22
+ @scope = new_scope(scope)
23
+ end
24
+
25
+ def call(root, arguments, context)
26
+ new_scope = scope.call(root, arguments, context)
27
+ old_resolver.call(new_scope, arguments, context)
23
28
  end
24
29
 
25
- old_resolve = field.resolve_proc
30
+ private
26
31
 
27
- scope_proc = lambda do |obj, _args, ctx|
28
- unless inferred?(scope)
29
- obj.define_singleton_method(:policy_class) { scope }
32
+ def new_scope(scope)
33
+ return scope if proc?(scope)
34
+
35
+ lambda do |root, _arguments, context|
36
+ unless inferred?(scope)
37
+ root.define_singleton_method(:policy_class) { scope }
38
+ end
39
+
40
+ ::Pundit.policy_scope!(context[current_user], root)
30
41
  end
42
+ end
31
43
 
32
- ::Pundit.policy_scope!(ctx[current_user], obj)
44
+ def valid_value?(value)
45
+ value.is_a?(Class) || inferred?(value) || proc?(value)
33
46
  end
34
- scope_proc = scope if proc?(scope)
35
47
 
36
- field.redefine do
37
- resolve(lambda do |obj, args, ctx|
38
- new_scope = scope_proc.call(obj, args, ctx)
39
- old_resolve.call(new_scope, args, ctx)
40
- end)
48
+ def proc?(value)
49
+ value.respond_to?(:call)
50
+ end
51
+
52
+ def inferred?(value)
53
+ value == :infer_scope
41
54
  end
42
55
  end
43
56
 
44
- private
57
+ attr_reader :current_user
45
58
 
46
- def valid_value?(value)
47
- value.is_a?(Class) || inferred?(value) || proc?(value)
59
+ def initialize(current_user = :current_user)
60
+ @current_user = current_user
48
61
  end
49
62
 
50
- def proc?(value)
51
- value.respond_to?(:call)
52
- end
63
+ def instrument(_type, field)
64
+ scope = field.metadata[:scope]
65
+ return field unless scope
53
66
 
54
- def inferred?(value)
55
- value == :infer_scope
67
+ old_resolver = field.resolve_proc
68
+ resolver = ScopeResolver.new(current_user, scope, old_resolver)
69
+
70
+ field.redefine do
71
+ resolve resolver
72
+ end
56
73
  end
57
74
  end
58
75
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GraphQL
4
4
  module Pundit
5
- VERSION = '0.4.0'
5
+ VERSION = '0.5.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql-pundit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ontohub Core Developers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-06 00:00:00.000000000 Z
11
+ date: 2017-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql
@@ -44,6 +44,48 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: 1.1.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.14'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.14'
61
+ - !ruby/object:Gem::Dependency
62
+ name: codecov
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 0.1.10
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 0.1.10
75
+ - !ruby/object:Gem::Dependency
76
+ name: fuubar
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 2.2.0
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 2.2.0
47
89
  - !ruby/object:Gem::Dependency
48
90
  name: pry
49
91
  requirement: !ruby/object:Gem::Requirement
@@ -59,89 +101,103 @@ dependencies:
59
101
  - !ruby/object:Gem::Version
60
102
  version: 0.11.0
61
103
  - !ruby/object:Gem::Dependency
62
- name: bundler
104
+ name: pry-byebug
63
105
  requirement: !ruby/object:Gem::Requirement
64
106
  requirements:
65
107
  - - "~>"
66
108
  - !ruby/object:Gem::Version
67
- version: '1.14'
109
+ version: 3.5.0
68
110
  type: :development
69
111
  prerelease: false
70
112
  version_requirements: !ruby/object:Gem::Requirement
71
113
  requirements:
72
114
  - - "~>"
73
115
  - !ruby/object:Gem::Version
74
- version: '1.14'
116
+ version: 3.5.0
75
117
  - !ruby/object:Gem::Dependency
76
- name: rake
118
+ name: pry-rescue
77
119
  requirement: !ruby/object:Gem::Requirement
78
120
  requirements:
79
121
  - - "~>"
80
122
  - !ruby/object:Gem::Version
81
- version: '12.0'
123
+ version: 1.4.4
82
124
  type: :development
83
125
  prerelease: false
84
126
  version_requirements: !ruby/object:Gem::Requirement
85
127
  requirements:
86
128
  - - "~>"
87
129
  - !ruby/object:Gem::Version
88
- version: '12.0'
130
+ version: 1.4.4
89
131
  - !ruby/object:Gem::Dependency
90
- name: rspec
132
+ name: pry-stack_explorer
91
133
  requirement: !ruby/object:Gem::Requirement
92
134
  requirements:
93
135
  - - "~>"
94
136
  - !ruby/object:Gem::Version
95
- version: '3.6'
137
+ version: 0.4.9.2
96
138
  type: :development
97
139
  prerelease: false
98
140
  version_requirements: !ruby/object:Gem::Requirement
99
141
  requirements:
100
142
  - - "~>"
101
143
  - !ruby/object:Gem::Version
102
- version: '3.6'
144
+ version: 0.4.9.2
103
145
  - !ruby/object:Gem::Dependency
104
- name: rubocop
146
+ name: rake
105
147
  requirement: !ruby/object:Gem::Requirement
106
148
  requirements:
107
149
  - - "~>"
108
150
  - !ruby/object:Gem::Version
109
- version: 0.50.0
151
+ version: '12.0'
110
152
  type: :development
111
153
  prerelease: false
112
154
  version_requirements: !ruby/object:Gem::Requirement
113
155
  requirements:
114
156
  - - "~>"
115
157
  - !ruby/object:Gem::Version
116
- version: 0.50.0
158
+ version: '12.0'
117
159
  - !ruby/object:Gem::Dependency
118
- name: simplecov
160
+ name: rspec
119
161
  requirement: !ruby/object:Gem::Requirement
120
162
  requirements:
121
163
  - - "~>"
122
164
  - !ruby/object:Gem::Version
123
- version: 0.15.1
165
+ version: '3.6'
124
166
  type: :development
125
167
  prerelease: false
126
168
  version_requirements: !ruby/object:Gem::Requirement
127
169
  requirements:
128
170
  - - "~>"
129
171
  - !ruby/object:Gem::Version
130
- version: 0.15.1
172
+ version: '3.6'
131
173
  - !ruby/object:Gem::Dependency
132
- name: codecov
174
+ name: rubocop
133
175
  requirement: !ruby/object:Gem::Requirement
134
176
  requirements:
135
177
  - - "~>"
136
178
  - !ruby/object:Gem::Version
137
- version: 0.1.10
179
+ version: 0.51.0
138
180
  type: :development
139
181
  prerelease: false
140
182
  version_requirements: !ruby/object:Gem::Requirement
141
183
  requirements:
142
184
  - - "~>"
143
185
  - !ruby/object:Gem::Version
144
- version: 0.1.10
186
+ version: 0.51.0
187
+ - !ruby/object:Gem::Dependency
188
+ name: simplecov
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: 0.15.1
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: 0.15.1
145
201
  description: Pundit authorization support for graphql
146
202
  email:
147
203
  - ontohub-dev-l@ovgu.de