graphql_devise 1.5.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4aa3fd3cb5393aea5b9cedc4bbe4742fb5f89d5730c40b66b3c0d16ffde93704
4
- data.tar.gz: ef7ab750655d0ad87b9c84c17653af2046e0479dabc1603528670e7737a97ca8
3
+ metadata.gz: c4bc4895a435e3cc07f19f26547d8266a564282712d1e25e1e79dc55da2cf166
4
+ data.tar.gz: 1c8b16d151fe06ebe989419f529d023f2dd6d48aefd0f886feaba5dc480198e5
5
5
  SHA512:
6
- metadata.gz: f18ec6dc3779ad66dd3950b8768e013108f5208b17c0dc21e7197aca2872d8fdb2dcd95ef1f78d1138f773eb98584a9c7bf0668bc516e56c3f7e56b8b5832a11
7
- data.tar.gz: 6511feb415cfdb50b3b784feb874f1fba9ac695207fd7e9a48aeaa9b531894da1de4849729059aa36957e228e4f7ad2dc07396ecc25c4e953e341ace990a728d
6
+ metadata.gz: ca8c2c1a5ec146f252c2b207f92a066df1f6f07c534b7488b785b0a8442e1dfcc36777bfd96a205522bc7e39fe5d8b3541beb4dc0b74c69db3909eed674d3069
7
+ data.tar.gz: dda448483ea753d99b0abfb10ad878b426e7647a1088b3b30b82d57b82acc8b18f6145a615c4f6ab64b1aa93399d1104f7e100034239cf68e817a85f989ca7f6
data/.circleci/config.yml CHANGED
@@ -13,12 +13,12 @@ jobs:
13
13
  - image: 'ruby:<< parameters.ruby-version >>'
14
14
  environment:
15
15
  BUNDLE_GEMFILE: << parameters.gemfile >>
16
- COVERALLS_PARALLEL: true
16
+ COVERALLS_PARALLEL: 'true'
17
17
  EAGER_LOAD: 'true'
18
18
  RUBYOPT: '-rostruct'
19
19
  steps:
20
20
  - checkout
21
- - run: gem install bundler -v '1.17'
21
+ - run: ruby bin/install_bundler.rb
22
22
  - run:
23
23
  name: Install dependencies
24
24
  command: bundle install
@@ -40,20 +40,12 @@ workflows:
40
40
  matrix:
41
41
  parameters:
42
42
  ruby-version:
43
- - '2.5'
44
- - '2.6'
45
43
  - '2.7'
46
44
  - '3.0'
45
+ - '3.1'
46
+ - '3.2'
47
+ - '3.3'
47
48
  gemfile:
48
- - gemfiles/rails4.2_graphql1.8.gemfile
49
- - gemfiles/rails5.0_graphql1.8.gemfile
50
- - gemfiles/rails5.0_graphql1.9.gemfile
51
- - gemfiles/rails5.1_graphql1.8.gemfile
52
- - gemfiles/rails5.1_graphql1.9.gemfile
53
- - gemfiles/rails5.2_graphql1.8.gemfile
54
- - gemfiles/rails5.2_graphql1.9.gemfile
55
- - gemfiles/rails5.2_graphql1.10.gemfile
56
- - gemfiles/rails5.2_graphql1.11.gemfile
57
49
  - gemfiles/rails6.0_graphql1.11.gemfile
58
50
  - gemfiles/rails6.0_graphql1.12.gemfile
59
51
  - gemfiles/rails6.0_graphql1.13.gemfile
@@ -68,89 +60,50 @@ workflows:
68
60
  - gemfiles/rails7.0_graphql2.1.gemfile
69
61
  - gemfiles/rails7.0_graphql2.2.gemfile
70
62
  - gemfiles/rails7.0_graphql2.3.gemfile
63
+ - gemfiles/rails7.0_graphql2.4.gemfile
71
64
  - gemfiles/rails7.1_graphql2.0.gemfile
72
65
  - gemfiles/rails7.1_graphql2.1.gemfile
73
66
  - gemfiles/rails7.1_graphql2.2.gemfile
74
67
  - gemfiles/rails7.1_graphql2.3.gemfile
68
+ - gemfiles/rails7.1_graphql2.4.gemfile
69
+ - gemfiles/rails7.2_graphql2.0.gemfile
70
+ - gemfiles/rails7.2_graphql2.1.gemfile
71
+ - gemfiles/rails7.2_graphql2.2.gemfile
72
+ - gemfiles/rails7.2_graphql2.3.gemfile
73
+ - gemfiles/rails7.2_graphql2.4.gemfile
75
74
  exclude:
76
- - ruby-version: '2.5'
77
- gemfile: gemfiles/rails7.0_graphql1.11.gemfile
78
- - ruby-version: '2.5'
79
- gemfile: gemfiles/rails6.0_graphql1.13.gemfile
80
- - ruby-version: '2.5'
81
- gemfile: gemfiles/rails6.1_graphql1.13.gemfile
82
- - ruby-version: '2.5'
83
- gemfile: gemfiles/rails7.0_graphql1.12.gemfile
84
- - ruby-version: '2.5'
85
- gemfile: gemfiles/rails7.0_graphql1.13.gemfile
86
- - ruby-version: '2.5'
87
- gemfile: gemfiles/rails6.1_graphql2.0.gemfile
88
- - ruby-version: '2.5'
89
- gemfile: gemfiles/rails6.1_graphql1.12.gemfile
90
- - ruby-version: '2.5'
91
- gemfile: gemfiles/rails6.1_graphql1.11.gemfile
92
- - ruby-version: '2.5'
93
- gemfile: gemfiles/rails6.0_graphql1.12.gemfile
94
- - ruby-version: '2.5'
95
- gemfile: gemfiles/rails6.0_graphql1.11.gemfile
96
- - ruby-version: '2.5'
97
- gemfile: gemfiles/rails7.0_graphql2.0.gemfile
98
- - ruby-version: '2.5'
99
- gemfile: gemfiles/rails7.0_graphql2.1.gemfile
100
- - ruby-version: '2.5'
101
- gemfile: gemfiles/rails7.0_graphql2.2.gemfile
102
- - ruby-version: '2.5'
103
- gemfile: gemfiles/rails7.0_graphql2.3.gemfile
104
- - ruby-version: '2.5'
105
- gemfile: gemfiles/rails7.1_graphql2.0.gemfile
106
- - ruby-version: '2.5'
107
- gemfile: gemfiles/rails7.1_graphql2.1.gemfile
108
- - ruby-version: '2.5'
109
- gemfile: gemfiles/rails7.1_graphql2.2.gemfile
110
- - ruby-version: '2.5'
111
- gemfile: gemfiles/rails7.1_graphql2.3.gemfile
112
- - ruby-version: '2.6'
113
- gemfile: gemfiles/rails7.0_graphql1.11.gemfile
114
- - ruby-version: '2.6'
115
- gemfile: gemfiles/rails7.0_graphql1.12.gemfile
116
- - ruby-version: '2.6'
117
- gemfile: gemfiles/rails7.0_graphql1.13.gemfile
118
- - ruby-version: '2.6'
119
- gemfile: gemfiles/rails7.0_graphql2.0.gemfile
120
- - ruby-version: '2.6'
121
- gemfile: gemfiles/rails7.0_graphql2.1.gemfile
122
- - ruby-version: '2.6'
123
- gemfile: gemfiles/rails7.0_graphql2.2.gemfile
124
- - ruby-version: '2.6'
125
- gemfile: gemfiles/rails7.0_graphql2.3.gemfile
126
- - ruby-version: '2.6'
127
- gemfile: gemfiles/rails7.1_graphql2.0.gemfile
128
- - ruby-version: '2.6'
129
- gemfile: gemfiles/rails7.1_graphql2.1.gemfile
130
- - ruby-version: '2.6'
131
- gemfile: gemfiles/rails7.1_graphql2.2.gemfile
132
- - ruby-version: '2.6'
133
- gemfile: gemfiles/rails7.1_graphql2.3.gemfile
134
75
  - ruby-version: '2.7'
135
- gemfile: gemfiles/rails4.2_graphql1.8.gemfile
136
- - ruby-version: '3.0'
137
- gemfile: gemfiles/rails4.2_graphql1.8.gemfile
138
- - ruby-version: '3.0'
139
- gemfile: gemfiles/rails5.0_graphql1.8.gemfile
140
- - ruby-version: '3.0'
141
- gemfile: gemfiles/rails5.0_graphql1.9.gemfile
142
- - ruby-version: '3.0'
143
- gemfile: gemfiles/rails5.1_graphql1.8.gemfile
76
+ gemfile: gemfiles/rails7.2_graphql2.0.gemfile
77
+ - ruby-version: '2.7'
78
+ gemfile: gemfiles/rails7.2_graphql2.1.gemfile
79
+ - ruby-version: '2.7'
80
+ gemfile: gemfiles/rails7.2_graphql2.2.gemfile
81
+ - ruby-version: '2.7'
82
+ gemfile: gemfiles/rails7.2_graphql2.3.gemfile
83
+ - ruby-version: '2.7'
84
+ gemfile: gemfiles/rails7.2_graphql2.4.gemfile
144
85
  - ruby-version: '3.0'
145
- gemfile: gemfiles/rails5.1_graphql1.9.gemfile
86
+ gemfile: gemfiles/rails7.2_graphql2.0.gemfile
146
87
  - ruby-version: '3.0'
147
- gemfile: gemfiles/rails5.2_graphql1.8.gemfile
88
+ gemfile: gemfiles/rails7.2_graphql2.1.gemfile
148
89
  - ruby-version: '3.0'
149
- gemfile: gemfiles/rails5.2_graphql1.9.gemfile
90
+ gemfile: gemfiles/rails7.2_graphql2.2.gemfile
150
91
  - ruby-version: '3.0'
151
- gemfile: gemfiles/rails5.2_graphql1.10.gemfile
92
+ gemfile: gemfiles/rails7.2_graphql2.3.gemfile
152
93
  - ruby-version: '3.0'
153
- gemfile: gemfiles/rails5.2_graphql1.11.gemfile
94
+ gemfile: gemfiles/rails7.2_graphql2.4.gemfile
95
+ - ruby-version: '3.2'
96
+ gemfile: gemfiles/rails6.0_graphql1.11.gemfile
97
+ - ruby-version: '3.2'
98
+ gemfile: gemfiles/rails6.1_graphql1.11.gemfile
99
+ - ruby-version: '3.2'
100
+ gemfile: gemfiles/rails7.0_graphql1.11.gemfile
101
+ - ruby-version: '3.3'
102
+ gemfile: gemfiles/rails6.0_graphql1.11.gemfile
103
+ - ruby-version: '3.3'
104
+ gemfile: gemfiles/rails6.1_graphql1.11.gemfile
105
+ - ruby-version: '3.3'
106
+ gemfile: gemfiles/rails7.0_graphql1.11.gemfile
154
107
  - report-coverage:
155
108
  requires:
156
109
  - test
data/.rubocop.yml CHANGED
@@ -4,7 +4,7 @@ require:
4
4
  - rubocop-rails
5
5
 
6
6
  AllCops:
7
- TargetRubyVersion: 2.4.4
7
+ TargetRubyVersion: 2.7
8
8
  DisplayCopNames: true
9
9
  Exclude:
10
10
  - bin/**/*
data/Appraisals CHANGED
@@ -1,107 +1,5 @@
1
- appraise 'rails4.2-graphql1.8' do
2
- gem 'sqlite3', '~> 1.3.6'
3
- gem 'bundler', '~> 1.17'
4
- gem 'rails', git: 'https://github.com/rails/rails', branch: '4-2-stable'
5
- gem 'graphql', '~> 1.8.0'
6
- gem 'devise_token_auth', '< 1.2'
7
- gem 'rspec-rails', '< 4.0'
8
- gem 'bigdecimal', '1.3.5'
9
- gem 'factory_bot', '<= 6.4.4'
10
- end
11
-
12
- appraise 'rails5.0-graphql1.8' do
13
- gem 'sqlite3', '~> 1.3.6'
14
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-0-stable'
15
- gem 'graphql', '~> 1.8.0'
16
- gem 'devise_token_auth', '0.1.43'
17
- gem 'devise', '>= 4.0'
18
- gem 'rspec-rails', '< 4.0'
19
- gem 'factory_bot', '<= 6.4.4'
20
- end
21
-
22
- appraise 'rails5.0-graphql1.9' do
23
- gem 'sqlite3', '~> 1.3.6'
24
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-0-stable'
25
- gem 'graphql', '~> 1.9.0'
26
- gem 'devise_token_auth', '< 1.2'
27
- gem 'rspec-rails', '< 4.0'
28
- gem 'factory_bot', '<= 6.4.4'
29
- end
30
-
31
- appraise 'rails5.1-graphql1.8' do
32
- gem 'sqlite3', '~> 1.3.6'
33
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-1-stable'
34
- gem 'graphql', '~> 1.8.0'
35
- gem 'devise_token_auth', '0.1.43'
36
- gem 'devise', '>= 4.3'
37
- gem 'rspec-rails', '< 4.0'
38
- gem 'factory_bot', '<= 6.4.4'
39
- end
40
-
41
- appraise 'rails5.1-graphql1.9' do
42
- gem 'sqlite3', '~> 1.3.6'
43
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-1-stable'
44
- gem 'graphql', '~> 1.9.0'
45
- gem 'devise_token_auth', '< 1.2'
46
- gem 'rspec-rails', '< 4.0'
47
- gem 'factory_bot', '<= 6.4.4'
48
- end
49
-
50
- appraise 'rails5.2-graphql1.8' do
51
- gem 'sqlite3', '~> 1.3.6'
52
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
53
- gem 'graphql', '~> 1.8.0'
54
- gem 'devise_token_auth', '0.1.43'
55
- gem 'devise', '>= 4.4.2'
56
- gem 'rspec-rails', '< 4.0'
57
- gem 'factory_bot', '<= 6.4.4'
58
- end
59
-
60
- appraise 'rails5.2-graphql1.9' do
61
- gem 'sqlite3', '~> 1.3.6'
62
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
63
- gem 'graphql', '~> 1.9.0'
64
- gem 'devise_token_auth', '< 1.2'
65
- gem 'rspec-rails', '< 4.0'
66
- gem 'factory_bot', '<= 6.4.4'
67
- end
68
-
69
- appraise 'rails5.2-graphql1.10' do
70
- gem 'sqlite3', '~> 1.3.6'
71
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
72
- gem 'graphql', '~> 1.10.0'
73
- gem 'devise_token_auth', '< 1.2'
74
- gem 'rspec-rails', '< 4.0'
75
- gem 'factory_bot', '<= 6.4.4'
76
- end
77
-
78
- appraise 'rails5.2-graphql1.11' do
79
- gem 'sqlite3', '~> 1.3.6'
80
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
81
- gem 'graphql', '~> 1.11.0'
82
- gem 'devise_token_auth', '< 1.2'
83
- gem 'rspec-rails', '< 4.0'
84
- gem 'factory_bot', '<= 6.4.4'
85
- end
86
-
87
- appraise 'rails5.2-graphql1.12' do
88
- gem 'sqlite3', '~> 1.3.6'
89
- gem 'rails', git: 'https://github.com/rails/rails', branch: '5-2-stable'
90
- gem 'graphql', '~> 1.12.0'
91
- gem 'devise_token_auth', '< 1.2'
92
- gem 'rspec-rails', '< 4.0'
93
- gem 'factory_bot', '<= 6.4.4'
94
- end
95
-
96
- appraise 'rails6.0-graphql1.10' do
97
- gem 'sqlite3', '~> 1.5.4'
98
- gem 'devise', '>= 4.7'
99
- gem 'rails', git: 'https://github.com/rails/rails', branch: '6-0-stable'
100
- gem 'graphql', '~> 1.10.0'
101
- gem 'factory_bot', '<= 6.4.4'
102
- end
103
-
104
1
  appraise 'rails6.0-graphql1.11' do
2
+ gem 'psych', '< 4'
105
3
  gem 'sqlite3', '~> 1.5.4'
106
4
  gem 'public_suffix', '< 5'
107
5
  gem 'devise', '>= 4.7'
@@ -111,6 +9,7 @@ appraise 'rails6.0-graphql1.11' do
111
9
  end
112
10
 
113
11
  appraise 'rails6.0-graphql1.12' do
12
+ gem 'psych', '< 4'
114
13
  gem 'sqlite3', '~> 1.5.4'
115
14
  gem 'public_suffix', '< 5'
116
15
  gem 'devise', '>= 4.7'
@@ -120,6 +19,7 @@ appraise 'rails6.0-graphql1.12' do
120
19
  end
121
20
 
122
21
  appraise 'rails6.0-graphql1.13' do
22
+ gem 'psych', '< 4'
123
23
  gem 'sqlite3', '~> 1.5.4'
124
24
  gem 'devise', '>= 4.7'
125
25
  gem 'rails', git: 'https://github.com/rails/rails', branch: '6-0-stable'
@@ -233,6 +133,15 @@ appraise 'rails7.0-graphql2.3' do
233
133
  gem 'graphql', '>= 2.3', '< 2.4'
234
134
  end
235
135
 
136
+ appraise 'rails7.0-graphql2.4' do
137
+ gem 'sassc-rails'
138
+ gem 'sqlite3', '~> 1.5.4'
139
+ gem 'devise_token_auth', '>= 1.2.1'
140
+ gem 'devise', '>= 4.7'
141
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-0-stable'
142
+ gem 'graphql', '>= 2.4', '< 2.5'
143
+ end
144
+
236
145
  appraise 'rails7.1-graphql2.0' do
237
146
  gem 'sassc-rails'
238
147
  gem 'sqlite3', '~> 1.5.4'
@@ -268,3 +177,52 @@ appraise 'rails7.1-graphql2.3' do
268
177
  gem 'rails', git: 'https://github.com/rails/rails', branch: '7-1-stable'
269
178
  gem 'graphql', '>= 2.3', '< 2.4'
270
179
  end
180
+
181
+ appraise 'rails7.1-graphql2.4' do
182
+ gem 'sassc-rails'
183
+ gem 'sqlite3', '~> 1.5.4'
184
+ gem 'devise_token_auth', '>= 1.2.1'
185
+ gem 'devise', '>= 4.7'
186
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-1-stable'
187
+ gem 'graphql', '>= 2.4', '< 2.5'
188
+ end
189
+
190
+ appraise 'rails7.2-graphql2.0' do
191
+ gem 'sassc-rails'
192
+ gem 'devise_token_auth', '>= 1.2.1'
193
+ gem 'devise', '>= 4.7'
194
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
195
+ gem 'graphql', '>= 2.0', '< 2.1'
196
+ end
197
+
198
+ appraise 'rails7.2-graphql2.1' do
199
+ gem 'sassc-rails'
200
+ gem 'devise_token_auth', '>= 1.2.1'
201
+ gem 'devise', '>= 4.7'
202
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
203
+ gem 'graphql', '>= 2.1', '< 2.2'
204
+ end
205
+
206
+ appraise 'rails7.2-graphql2.2' do
207
+ gem 'sassc-rails'
208
+ gem 'devise_token_auth', '>= 1.2.1'
209
+ gem 'devise', '>= 4.7'
210
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
211
+ gem 'graphql', '>= 2.2', '< 2.3'
212
+ end
213
+
214
+ appraise 'rails7.2-graphql2.3' do
215
+ gem 'sassc-rails'
216
+ gem 'devise_token_auth', '>= 1.2.1'
217
+ gem 'devise', '>= 4.7'
218
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
219
+ gem 'graphql', '>= 2.3', '< 2.4'
220
+ end
221
+
222
+ appraise 'rails7.2-graphql2.4' do
223
+ gem 'sassc-rails'
224
+ gem 'devise_token_auth', '>= 1.2.1'
225
+ gem 'devise', '>= 4.7'
226
+ gem 'rails', git: 'https://github.com/rails/rails', branch: '7-2-stable'
227
+ gem 'graphql', '>= 2.4', '< 2.5'
228
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [v2.0.0](https://github.com/graphql-devise/graphql_devise/tree/v2.0.0) (2024-12-10)
4
+
5
+ [Full Changelog](https://github.com/graphql-devise/graphql_devise/compare/v1.5.0...v2.0.0)
6
+
7
+ **Breaking changes:**
8
+
9
+ - Drop support for Rails \< 6.0 and Ruby \< 2.7 [\#276](https://github.com/graphql-devise/graphql_devise/pull/276) ([HeyNonster](https://github.com/HeyNonster))
10
+
11
+ **Implemented enhancements:**
12
+
13
+ - Add support for GraphQL 2.4 [\#281](https://github.com/graphql-devise/graphql_devise/pull/281) ([mcelicalderon](https://github.com/mcelicalderon))
14
+ - Test with Ruby 3.2 and 3.3 [\#279](https://github.com/graphql-devise/graphql_devise/pull/279) ([mcelicalderon](https://github.com/mcelicalderon))
15
+ - Add support for Rails 7.2 [\#278](https://github.com/graphql-devise/graphql_devise/pull/278) ([mcelicalderon](https://github.com/mcelicalderon))
16
+
3
17
  ## [v1.5.0](https://github.com/graphql-devise/graphql_devise/tree/v1.5.0) (2024-05-16)
4
18
 
5
19
  [Full Changelog](https://github.com/graphql-devise/graphql_devise/compare/v1.4.0...v1.5.0)
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GraphqlDevise
4
- ApplicationController = if Rails::VERSION::MAJOR >= 5
5
- Class.new(ActionController::API)
6
- else
7
- Class.new(ActionController::Base)
8
- end
4
+ ApplicationController = Class.new(ActionController::API)
9
5
  end
@@ -0,0 +1,11 @@
1
+ #!ruby
2
+
3
+ ruby_version = Gem::Version.new(RUBY_VERSION)
4
+
5
+ if ruby_version < Gem::Version.new('2.6')
6
+ system('gem install bundler -v 2.3.27')
7
+ elsif ruby_version >= Gem::Version.new('2.6') && ruby_version < Gem::Version.new('3.0')
8
+ system('gem install bundler -v 2.4.22')
9
+ else
10
+ system('gem install bundler')
11
+ end
@@ -25,11 +25,11 @@ Gem::Specification.new do |spec|
25
25
  `git ls-files -z`.split("\x0").select { |f| f.match(%r{^spec/}) }
26
26
  end
27
27
 
28
- spec.required_ruby_version = '>= 2.4.4'
28
+ spec.required_ruby_version = '>= 2.7.0'
29
29
 
30
30
  spec.add_dependency 'devise_token_auth', '>= 0.1.43', '< 2.0'
31
- spec.add_dependency 'graphql', '>= 1.8', '< 2.4'
32
- spec.add_dependency 'rails', '>= 4.2', '< 7.2'
31
+ spec.add_dependency 'graphql', '>= 1.8', '< 2.5'
32
+ spec.add_dependency 'rails', '>= 6.0', '< 7.3'
33
33
  spec.add_dependency 'zeitwerk'
34
34
 
35
35
  spec.add_development_dependency 'appraisal'
@@ -38,13 +38,13 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency 'faker'
39
39
  spec.add_development_dependency 'generator_spec'
40
40
  spec.add_development_dependency 'github_changelog_generator'
41
- spec.add_development_dependency 'pry', '~> 0.12.2'
41
+ spec.add_development_dependency 'pry', '>= 0.14.2'
42
42
  spec.add_development_dependency 'pry-byebug'
43
43
  spec.add_development_dependency 'rake', '>= 12.3.3'
44
- spec.add_development_dependency 'rspec-rails', '~> 4.0'
44
+ spec.add_development_dependency 'rspec-rails'
45
45
  spec.add_development_dependency 'rubocop', '< 0.82.0'
46
46
  spec.add_development_dependency 'rubocop-performance', '< 1.6.0'
47
47
  spec.add_development_dependency 'rubocop-rails', '< 2.6.0'
48
48
  spec.add_development_dependency 'rubocop-rspec', '< 1.39.0'
49
- spec.add_development_dependency 'sqlite3', '~> 1.3'
49
+ spec.add_development_dependency 'sqlite3'
50
50
  end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GraphqlDevise
4
+ module FieldAuthTracer
5
+ def initialize(authenticate_default:, public_introspection:, unauthenticated_proc:, **_rest)
6
+ @authenticate_default = authenticate_default
7
+ @public_introspection = public_introspection
8
+ @unauthenticated_proc = unauthenticated_proc
9
+
10
+ super
11
+ end
12
+
13
+ def execute_field(field:, query:, ast_node:, arguments:, object:)
14
+ # Authenticate only root level queries
15
+ return super unless query.context.current_path.count == 1
16
+
17
+ auth_required = authenticate_option(field)
18
+
19
+ if auth_required && !(public_introspection && introspection_field?(field.name))
20
+ raise_on_missing_resource(query.context, field, auth_required)
21
+ end
22
+
23
+ super
24
+ end
25
+
26
+ private
27
+
28
+ attr_reader :public_introspection
29
+
30
+ def authenticate_option(field)
31
+ auth_required = field.try(:authenticate)
32
+
33
+ auth_required.nil? ? @authenticate_default : auth_required
34
+ end
35
+
36
+ def introspection_field?(field_name)
37
+ SchemaPlugin::INTROSPECTION_FIELDS.include?(field_name.downcase)
38
+ end
39
+
40
+ def raise_on_missing_resource(context, field, auth_required)
41
+ @unauthenticated_proc.call(field.name) if context[:current_resource].blank?
42
+
43
+ if auth_required.respond_to?(:call) && !auth_required.call(context[:current_resource])
44
+ @unauthenticated_proc.call(field.name)
45
+ end
46
+ end
47
+ end
48
+ end
@@ -52,11 +52,7 @@ module GraphqlDevise
52
52
  end
53
53
 
54
54
  def email_in_database
55
- if Devise.activerecord51?
56
- @resource.email_in_database
57
- else
58
- @resource.email_was
59
- end
55
+ @resource.email_in_database
60
56
  end
61
57
 
62
58
  def confirmation_method_params
@@ -19,7 +19,16 @@ module GraphqlDevise
19
19
  end
20
20
 
21
21
  def use(schema_definition)
22
- schema_definition.tracer(self)
22
+ if Gem::Version.new(GraphQL::VERSION) >= Gem::Version.new('2.3')
23
+ schema_definition.trace_with(
24
+ FieldAuthTracer,
25
+ authenticate_default: @authenticate_default,
26
+ public_introspection: public_introspection,
27
+ unauthenticated_proc: @unauthenticated_proc
28
+ )
29
+ else
30
+ schema_definition.tracer(self)
31
+ end
23
32
  end
24
33
 
25
34
  def trace(event, trace_data)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GraphqlDevise
4
- VERSION = '1.5.0'
4
+ VERSION = '2.0.0'
5
5
  end
@@ -27,9 +27,5 @@ module Dummy
27
27
  # Middleware like session, flash, cookies can be added back manually.
28
28
  # Skip views, helpers and assets when generating a new resource.
29
29
  # config.api_only = true
30
-
31
- if Rails::VERSION::MAJOR >= 5 && Rails::VERSION::MINOR > 1
32
- config.active_record.sqlite3.represent_boolean_as_integer = true
33
- end
34
30
  end
35
31
  end
@@ -15,13 +15,8 @@ Rails.application.configure do
15
15
  config.eager_load = ENV['EAGER_LOAD'].present?
16
16
 
17
17
  # Configure public file server for tests with Cache-Control for performance.
18
- if Rails::VERSION::MAJOR >= 5
19
- config.public_file_server.enabled = true
20
- config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
21
- else
22
- config.serve_static_files = true
23
- config.static_cache_control = 'public, max-age=3600'
24
- end
18
+ config.public_file_server.enabled = true
19
+ config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
25
20
 
26
21
  # Show full error reports and disable caching.
27
22
  config.consider_all_requests_local = true
@@ -33,17 +33,6 @@ RSpec.describe GraphqlDevise::GraphqlController do
33
33
  end
34
34
  end
35
35
 
36
- context 'when variables are not a string or hash' do
37
- let(:variables) { 1 }
38
- let(:query) { "mutation($email: String!) { userLogin(email: $email, password: \"#{password}\") { user { email name signInCount } } }" }
39
-
40
- it 'raises an error' do
41
- expect do
42
- post_request('/api/v1/graphql_auth')
43
- end.to raise_error(ArgumentError)
44
- end
45
- end
46
-
47
36
  context 'when multiplexing queries' do
48
37
  let(:params) do
49
38
  {
@@ -74,10 +63,6 @@ RSpec.describe GraphqlDevise::GraphqlController do
74
63
  end
75
64
 
76
65
  def post_request(path)
77
- if Rails::VERSION::MAJOR >= 5
78
- post(path, params: params)
79
- else
80
- post(path, params)
81
- end
66
+ post(path, params: params)
82
67
  end
83
68
  end
@@ -128,7 +128,7 @@ RSpec.describe 'Registration process' do
128
128
 
129
129
  it 'skips the register mutation' do
130
130
  expect(json_response[:errors]).to contain_exactly(
131
- hash_including(message: "Field 'adminRegister' doesn't exist on type 'Mutation'")
131
+ hash_including(message: a_string_including("Field 'adminRegister' doesn't exist on type 'Mutation'"))
132
132
  )
133
133
  end
134
134
  end
@@ -116,7 +116,13 @@ RSpec.describe 'Login Requests' do
116
116
 
117
117
  context 'and introspection is set to require auth' do
118
118
  before do
119
- allow_any_instance_of(GraphqlDevise::SchemaPlugin).to(
119
+ target_class = if Gem::Version.new(GraphQL::VERSION) >= Gem::Version.new('2.3')
120
+ GraphqlDevise::FieldAuthTracer
121
+ else
122
+ GraphqlDevise::SchemaPlugin
123
+ end
124
+
125
+ allow_any_instance_of(target_class).to(
120
126
  receive(:public_introspection).and_return(false)
121
127
  )
122
128
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if ENV['CI'] && !ENV['SKIP_COVERALLS'] && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.5')
3
+ if ENV['CI'] && !ENV['SKIP_COVERALLS']
4
4
  require 'simplecov'
5
5
  require 'coveralls'
6
6
 
@@ -4,11 +4,7 @@ RSpec.shared_context 'with graphql query request' do
4
4
  let(:headers) { {} }
5
5
  let(:variables) { {} }
6
6
  let(:graphql_params) do
7
- if Rails::VERSION::MAJOR >= 5
8
- { params: { query: query, variables: variables }, headers: headers }
9
- else
10
- [{ query: query, variables: variables }, headers]
11
- end
7
+ { params: { query: query, variables: variables }, headers: headers }
12
8
  end
13
9
 
14
10
  def post_request(path = '/api/v1/graphql_auth')
@@ -20,10 +16,6 @@ RSpec.shared_context 'with graphql query request' do
20
16
  end
21
17
 
22
18
  def send_request(path, method)
23
- if Rails::VERSION::MAJOR >= 5
24
- public_send(method, path, **graphql_params)
25
- else
26
- public_send(method, path, *graphql_params)
27
- end
19
+ public_send(method, path, **graphql_params)
28
20
  end
29
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql_devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Celi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-05-16 00:00:00.000000000 Z
12
+ date: 2024-12-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise_token_auth
@@ -40,7 +40,7 @@ dependencies:
40
40
  version: '1.8'
41
41
  - - "<"
42
42
  - !ruby/object:Gem::Version
43
- version: '2.4'
43
+ version: '2.5'
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,27 +50,27 @@ dependencies:
50
50
  version: '1.8'
51
51
  - - "<"
52
52
  - !ruby/object:Gem::Version
53
- version: '2.4'
53
+ version: '2.5'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: rails
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '4.2'
60
+ version: '6.0'
61
61
  - - "<"
62
62
  - !ruby/object:Gem::Version
63
- version: '7.2'
63
+ version: '7.3'
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - ">="
69
69
  - !ruby/object:Gem::Version
70
- version: '4.2'
70
+ version: '6.0'
71
71
  - - "<"
72
72
  - !ruby/object:Gem::Version
73
- version: '7.2'
73
+ version: '7.3'
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: zeitwerk
76
76
  requirement: !ruby/object:Gem::Requirement
@@ -173,16 +173,16 @@ dependencies:
173
173
  name: pry
174
174
  requirement: !ruby/object:Gem::Requirement
175
175
  requirements:
176
- - - "~>"
176
+ - - ">="
177
177
  - !ruby/object:Gem::Version
178
- version: 0.12.2
178
+ version: 0.14.2
179
179
  type: :development
180
180
  prerelease: false
181
181
  version_requirements: !ruby/object:Gem::Requirement
182
182
  requirements:
183
- - - "~>"
183
+ - - ">="
184
184
  - !ruby/object:Gem::Version
185
- version: 0.12.2
185
+ version: 0.14.2
186
186
  - !ruby/object:Gem::Dependency
187
187
  name: pry-byebug
188
188
  requirement: !ruby/object:Gem::Requirement
@@ -215,16 +215,16 @@ dependencies:
215
215
  name: rspec-rails
216
216
  requirement: !ruby/object:Gem::Requirement
217
217
  requirements:
218
- - - "~>"
218
+ - - ">="
219
219
  - !ruby/object:Gem::Version
220
- version: '4.0'
220
+ version: '0'
221
221
  type: :development
222
222
  prerelease: false
223
223
  version_requirements: !ruby/object:Gem::Requirement
224
224
  requirements:
225
- - - "~>"
225
+ - - ">="
226
226
  - !ruby/object:Gem::Version
227
- version: '4.0'
227
+ version: '0'
228
228
  - !ruby/object:Gem::Dependency
229
229
  name: rubocop
230
230
  requirement: !ruby/object:Gem::Requirement
@@ -285,16 +285,16 @@ dependencies:
285
285
  name: sqlite3
286
286
  requirement: !ruby/object:Gem::Requirement
287
287
  requirements:
288
- - - "~>"
288
+ - - ">="
289
289
  - !ruby/object:Gem::Version
290
- version: '1.3'
290
+ version: '0'
291
291
  type: :development
292
292
  prerelease: false
293
293
  version_requirements: !ruby/object:Gem::Requirement
294
294
  requirements:
295
- - - "~>"
295
+ - - ">="
296
296
  - !ruby/object:Gem::Version
297
- version: '1.3'
297
+ version: '0'
298
298
  description: GraphQL queries and mutations on top of devise_token_auth
299
299
  email:
300
300
  - mcelicalderon@gmail.com
@@ -323,6 +323,7 @@ files:
323
323
  - app/views/graphql_devise/mailer/confirmation_instructions.html.erb
324
324
  - app/views/graphql_devise/mailer/reset_password_instructions.html.erb
325
325
  - bin/console
326
+ - bin/install_bundler.rb
326
327
  - bin/rails
327
328
  - bin/setup
328
329
  - config/locales/en.yml
@@ -346,6 +347,7 @@ files:
346
347
  - lib/graphql_devise/errors/error_codes.rb
347
348
  - lib/graphql_devise/errors/execution_error.rb
348
349
  - lib/graphql_devise/errors/user_error.rb
350
+ - lib/graphql_devise/field_auth_tracer.rb
349
351
  - lib/graphql_devise/model/with_email_updater.rb
350
352
  - lib/graphql_devise/mount_method/operation_preparer.rb
351
353
  - lib/graphql_devise/mount_method/operation_preparers/custom_operation_preparer.rb
@@ -522,14 +524,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
522
524
  requirements:
523
525
  - - ">="
524
526
  - !ruby/object:Gem::Version
525
- version: 2.4.4
527
+ version: 2.7.0
526
528
  required_rubygems_version: !ruby/object:Gem::Requirement
527
529
  requirements:
528
530
  - - ">="
529
531
  - !ruby/object:Gem::Version
530
532
  version: '0'
531
533
  requirements: []
532
- rubygems_version: 3.1.6
534
+ rubygems_version: 3.5.1
533
535
  signing_key:
534
536
  specification_version: 4
535
537
  summary: GraphQL queries and mutations on top of devise_token_auth