datarockets-style 1.4.0 → 1.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
  SHA256:
3
- metadata.gz: d8cf398f37f77c928364df3e33a874052bb6912f909688e881a03b87cc7d53d1
4
- data.tar.gz: 7f3e05cf2f7c6dbdff1e5c506131de539f14974400cefb2e30170be0cabec9c9
3
+ metadata.gz: fae6be6c9b336722b260f0e5cfd4d650d95e5cd96e453756b5bcbbf3b74f13bd
4
+ data.tar.gz: 4bb202204deb99f738fad88e8b8b6aebfcb8ba1c59a4ead9a6c8ad39ab25e952
5
5
  SHA512:
6
- metadata.gz: 4072a041ba599dcad11bfdf6f50c851541f9b77a0a5283989a26d12c121fcc778c11883ccc6eb495fc737674ee5e2c024a9f067150953077bcf2361b45a8425f
7
- data.tar.gz: b68cc6a20a6bd27c42071606c27329365fc0e0c400999f66846aa9604b705fccab9d652de8711de69bc4ff25e9c5f121b5a2e11b422ee4b88dbb413ff06adb0b
6
+ metadata.gz: 12f51702b7b03323daf313e476c1bb70e8daa6ffcea8d1d5c0b7ec2b01915cd31147a77c79c62b3bf876dddbe68fe221def1848c2cbb82d17242f7e1e018719e
7
+ data.tar.gz: e79c1b517947247f4c76f06e59e1c52816193080162b412b3f3beea3900d97d3f8b32749d99335dfadb1be51266bca04cb0cf385b515034a60def7341577ca39
@@ -15,10 +15,10 @@ jobs:
15
15
  steps:
16
16
  - uses: actions/checkout@v3
17
17
 
18
- - name: Set up Ruby 2.6
18
+ - name: Set up Ruby 2.7
19
19
  uses: ruby/setup-ruby@v1
20
20
  with:
21
- ruby-version: '2.6'
21
+ ruby-version: '2.7'
22
22
  bundler-cache: true
23
23
 
24
24
  - name: Run linter
data/.rubocop.yml CHANGED
@@ -7,7 +7,7 @@ inherit_mode:
7
7
  - Exclude
8
8
 
9
9
  AllCops:
10
- TargetRubyVersion: 2.6
10
+ TargetRubyVersion: 2.7
11
11
 
12
12
  # for checking cops with interpolation
13
13
  Lint/InterpolationCheck:
data/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@ The format is described in [Contributing notes](CONTRIBUTING.md#changelog-entry-
4
4
 
5
5
  ## master
6
6
 
7
+ ## 1.5.0 (2023-09-11)
8
+
9
+ ### Added
10
+
11
+ * Added GraphQL cops. ([@Anastastasia-B][])
12
+
13
+ ### Changed
14
+
15
+ * **(Breaking)** Support Ruby >= 2.7.0
16
+
17
+ * Update rubocop to `1.56.3`. ([@Set27])
18
+ * Update rubocop-rails to `2.21.0`. ([@Set27])
19
+ * Update rubocop-spec to `2.24.0`. ([@Set27])
20
+
7
21
  ## 1.4.0 (2023-02-11)
8
22
 
9
23
  ### Changed
@@ -272,3 +286,4 @@ The format is described in [Contributing notes](CONTRIBUTING.md#changelog-entry-
272
286
  [@a.branzeanu]: https://github.com/texpert
273
287
  [@nikitasakov]: https://github.com/nikitasakov
274
288
  [@paydaylight]: https://github.com/paydaylight
289
+ [@Anastastasia-B]: https://github.com/Anastastasia-B
data/Gemfile CHANGED
@@ -8,4 +8,4 @@ gemspec
8
8
 
9
9
  gem "pry-byebug"
10
10
  gem "rake", "~> 13.0"
11
- gem "rspec", "~> 3.10"
11
+ gem "rspec", "~> 3.12.0"
data/README.md CHANGED
@@ -10,14 +10,14 @@ Add this line to your application's Gemfile:
10
10
 
11
11
  ```ruby
12
12
  group :test, :development do
13
- gem 'datarockets-style', '~> 1.4.0'
13
+ gem 'datarockets-style', '~> 1.5.0'
14
14
  end
15
15
  ```
16
16
 
17
17
  Or, for a Ruby library, add this to your gemspec:
18
18
 
19
19
  ```ruby
20
- spec.add_development_dependency 'datarockets-style', '~> 1.4.0'
20
+ spec.add_development_dependency 'datarockets-style', '~> 1.5.0'
21
21
  ```
22
22
 
23
23
  And then execute:
@@ -60,6 +60,16 @@ inherit_gem:
60
60
  - config/rails-locales.yml
61
61
  ```
62
62
 
63
+ ### GraphQL config
64
+
65
+ To include specific rules for GraphQL, you can add the following config
66
+
67
+ ```yaml
68
+ inherit_gem:
69
+ datarockets-style:
70
+ - config/graphql.yml
71
+ ```
72
+
63
73
  ### Rspec config
64
74
 
65
75
  For Rspec tests, you can add a special rubocop config
@@ -0,0 +1,10 @@
1
+ require: rubocop-graphql
2
+
3
+ GraphQL/ExtractInputType:
4
+ Enabled: false
5
+
6
+ GraphQL/ExtractType:
7
+ Enabled: false
8
+
9
+ GraphQL/ResolverMethodLength:
10
+ Max: 10
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/datarockets/datarockets-style"
15
15
  spec.license = "MIT"
16
16
 
17
- spec.required_ruby_version = ">= 2.6.0"
17
+ spec.required_ruby_version = ">= 2.7.0"
18
18
 
19
19
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
20
20
  # to allow pushing to a single host or delete this section to allow pushing to any host.
@@ -32,9 +32,10 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ["lib"]
34
34
 
35
- spec.add_dependency "rubocop", "~> 1.45.1"
36
- spec.add_dependency "rubocop-rails", "~> 2.17.4"
37
- spec.add_dependency "rubocop-rspec", "~> 2.18.1"
35
+ spec.add_dependency "rubocop", "~> 1.56.3"
36
+ spec.add_dependency "rubocop-graphql", "~> 1.4"
37
+ spec.add_dependency "rubocop-rails", "~> 2.21"
38
+ spec.add_dependency "rubocop-rspec", "~> 2.24"
38
39
 
39
40
  spec.metadata["rubygems_mfa_required"] = "true"
40
41
  end
@@ -0,0 +1,486 @@
1
+ # GraphQL Style Guide
2
+
3
+ This style is based on the rules from [RuboCop::GraphQL](https://github.com/DmitryTsepelev/rubocop-graphql) gem with a few differences.
4
+
5
+ ## Table of contents
6
+
7
+ * [Style](#Style)
8
+
9
+ ## Style
10
+
11
+ * <a name="graphql-argument-description"></a>
12
+ Each argument should have a description.
13
+ <sup>[[link](#graphql-argument-description)]</sup>
14
+
15
+ ```ruby
16
+ # bad
17
+ class BanUser < BaseMutation
18
+ argument :uuid, ID, required: true
19
+ end
20
+
21
+ # good
22
+ class BanUser < BaseMutation
23
+ argument :uuid, ID, required: true, description: "UUID of the user to ban"
24
+ end
25
+ ```
26
+
27
+ * <a name="graphql-argument-name"></a>
28
+ All argument names should be snake_case.
29
+ <sup>[[link](#graphql-argument-name)]</sup>
30
+
31
+ ```ruby
32
+ # bad
33
+ class BanUser < BaseMutation
34
+ argument :userId, ID, required: true
35
+ end
36
+
37
+ # good
38
+ class BanUser < BaseMutation
39
+ argument :user_id, ID, required: true
40
+ end
41
+ ```
42
+
43
+ * <a name="graphql-argument-uniqueness"></a>
44
+ Avoid duplicate argument definitions.
45
+ <sup>[[link](#graphql-argument-uniqueness)]</sup>
46
+
47
+ ```ruby
48
+ # bad
49
+ class BanUser < BaseMutation
50
+ argument :user_id, ID, required: true
51
+ argument :user_id, ID, required: true
52
+ end
53
+
54
+ # good
55
+ class BanUser < BaseMutation
56
+ argument :user_id, ID, required: true
57
+ end
58
+ ```
59
+
60
+ * <a name="graphql-field-definitions"></a>
61
+ All field definitions should be grouped together.
62
+ <sup>[[link](#graphql-field-definitions)]</sup>
63
+
64
+ ```ruby
65
+ # bad
66
+ class UserType < BaseType
67
+ field :first_name, String, null: true
68
+
69
+ def first_name
70
+ object.contact_data.first_name
71
+ end
72
+
73
+ field :last_name, String, null: true
74
+
75
+ def last_name
76
+ object.contact_data.last_name
77
+ end
78
+ end
79
+
80
+ # good
81
+ class UserType < BaseType
82
+ field :first_name, String, null: true
83
+ field :last_name, String, null: true
84
+
85
+ def first_name
86
+ object.contact_data.first_name
87
+ end
88
+
89
+ def last_name
90
+ object.contact_data.last_name
91
+ end
92
+ end
93
+ ```
94
+
95
+ * <a name="graphql-field-description"></a>
96
+ Each field should have a description.
97
+ <sup>[[link](#graphql-field-description)]</sup>
98
+
99
+ ```ruby
100
+ # bad
101
+ class UserType < BaseType
102
+ field :name, String, null: true
103
+ end
104
+
105
+ # good
106
+ class UserType < BaseType
107
+ field :name, String, "Name of the user", null: true
108
+ end
109
+ ```
110
+
111
+ * <a name="graphql-field-hash-key"></a>
112
+ Avoid unnecessary resolver methods in cases when :hash_key option can be used.
113
+ <sup>[[link](#graphql-field-hash-key)]</sup>
114
+
115
+ ```ruby
116
+ # bad
117
+ class Types::UserType < Types::BaseObject
118
+ field :phone, String, null: true
119
+
120
+ def phone
121
+ object[:home_phone]
122
+ end
123
+ end
124
+
125
+ # good
126
+ class Types::UserType < Types::BaseObject
127
+ field :phone, String, null: true, hash_key: :home_phone
128
+ end
129
+ ```
130
+
131
+ * <a name="graphql-field-mathod"></a>
132
+ Avoid unnecessary resolver methods in cases when :method option can be used.
133
+ <sup>[[link](#graphql-field-mathod)]</sup>
134
+
135
+ ```ruby
136
+ # bad
137
+ class Types::UserType < Types::BaseObject
138
+ field :phone, String, null: true
139
+
140
+ def phone
141
+ object.home_phone
142
+ end
143
+ end
144
+
145
+ # good
146
+ class Types::UserType < Types::BaseObject
147
+ field :phone, String, null: true, method: :home_phone
148
+ end
149
+ ```
150
+
151
+ * <a name="graphql-field-name"></a>
152
+ All field names should be snake_case.
153
+ <sup>[[link](#graphql-field-name)]</sup>
154
+
155
+ ```ruby
156
+ # bad
157
+ class UserType < BaseType
158
+ field :firstName, String, null: true
159
+ end
160
+
161
+ # good
162
+ class UserType < BaseType
163
+ field :first_name, String, null: true
164
+ end
165
+ ```
166
+
167
+ * <a name="graphql-field-uniqueness"></a>
168
+ Avoid duplicate field definitions.
169
+ <sup>[[link](#graphql-field-uniqueness)]</sup>
170
+
171
+ ```ruby
172
+ # bad
173
+ class UserType < BaseType
174
+ field :name, String, null: true
175
+ field :phone, String, null: true
176
+ field :phone, String, null: true do
177
+ argument :something, String, required: false
178
+ end
179
+ end
180
+
181
+ # good
182
+ class UserType < BaseType
183
+ field :name, String, null: true
184
+ field :phone, String, null: true do
185
+ argument :something, String, required: false
186
+ end
187
+ end
188
+ ```
189
+
190
+ * <a name="graphql-graphql-name"></a>
191
+ Types and mutations should have graphql_name configured only if it's different from the default name.
192
+ <sup>[[link](#graphql-graphql-name)]</sup>
193
+
194
+ ```ruby
195
+ # bad
196
+ class UserType < BaseType
197
+ graphql_name 'User'
198
+ end
199
+
200
+ # good
201
+ class UserType < BaseType
202
+ graphql_name 'Viewer'
203
+ end
204
+ ```
205
+
206
+ * <a name="graphql-max-complexity-schema"></a>
207
+ Use max_complexity configuration in schema files.
208
+ <sup>[[link](#graphql-max-complexity-schema)]</sup>
209
+
210
+ ```ruby
211
+ # good
212
+ class AppSchema < BaseSchema
213
+ max_complexity 42
214
+ end
215
+ ```
216
+
217
+ * <a name="graphql-max-depth-schema"></a>
218
+ Use max_depth configuration in schema files.
219
+ <sup>[[link](#graphql-max-depth-schema)]</sup>
220
+
221
+ ```ruby
222
+ # good
223
+ class AppSchema < BaseSchema
224
+ max_depth 42
225
+ end
226
+ ```
227
+
228
+ * <a name="graphql-multiple-field-definitions"></a>
229
+ Fields with multiple definitions should be grouped together.
230
+ <sup>[[link](#graphql-multiple-field-definitions)]</sup>
231
+
232
+ ```ruby
233
+ # bad
234
+ class UserType < BaseType
235
+ field :first_name, String, null: true
236
+
237
+ def first_name
238
+ object.contact_data.first_name
239
+ end
240
+ field :first_name, Name, null: true
241
+ end
242
+
243
+ # good
244
+ class UserType < BaseType
245
+ field :first_name, String, null: true
246
+ field :first_name, Name, null: true
247
+
248
+ def first_name
249
+ object.contact_data.first_name
250
+ end
251
+ end
252
+ ```
253
+
254
+ * <a name="graphql-not-authorized-node-type"></a>
255
+ Types that implement Node interface should have `.authorized?` check. Such types can be fetched by ID and therefore should have type level check to avoid accidental information exposure.
256
+ If `.authorized?` is defined in a parent class, you can add parent to the "SafeBaseClasses" to avoid offenses in children.
257
+ This cop also checks the `can_can_action` or `pundit_role` methods that can be used as part of the Ruby GraphQL Pro.
258
+ <sup>[[link](#graphql-not-authorized-node-type)]</sup>
259
+
260
+ ```ruby
261
+ # bad
262
+ class UserType < BaseType
263
+ implements GraphQL::Types::Relay::Node
264
+
265
+ field :uuid, ID, null: false
266
+ end
267
+
268
+ # good
269
+ class UserType < BaseType
270
+ implements GraphQL::Types::Relay::Node
271
+
272
+ field :uuid, ID, null: false
273
+
274
+ def self.authorized?(object, context)
275
+ super && object.owner == context[:viewer]
276
+ end
277
+ end
278
+
279
+ # good
280
+ class UserType < BaseType
281
+ implements GraphQL::Types::Relay::Node
282
+
283
+ pundit_role :staff
284
+
285
+ field :uuid, ID, null: false
286
+ end
287
+
288
+ # good
289
+ class UserType < BaseType
290
+ implements GraphQL::Types::Relay::Node
291
+
292
+ can_can_action :staff
293
+
294
+ field :uuid, ID, null: false
295
+ end
296
+ ```
297
+
298
+ * <a name="graphql-object-description"></a>
299
+ All types (objects, inputs, interfaces, scalars, unions, mutations, subscriptions, and resolvers) should have a description.
300
+ <sup>[[link](#graphql-object-description)]</sup>
301
+
302
+ ```ruby
303
+ # bad
304
+ class Types::UserType < Types::BaseObject
305
+ ...
306
+ end
307
+
308
+ # good
309
+ class Types::UserType < Types::BaseObject
310
+ description "Represents application user"
311
+ ...
312
+ end
313
+ ```
314
+
315
+ * <a name="graphql-ordered-arguments"></a>
316
+ Arguments should be alphabetically sorted within groups.
317
+ <sup>[[link](#graphql-ordered-arguments)]</sup>
318
+
319
+ ```ruby
320
+ # bad
321
+ class UpdateProfile < BaseMutation
322
+ argument :uuid, ID, required: true
323
+ argument :email, String, required: false
324
+ argument :name, String, required: false
325
+ end
326
+
327
+ # good
328
+ class UpdateProfile < BaseMutation
329
+ argument :email, String, required: false
330
+ argument :name, String, required: false
331
+ end
332
+
333
+ # good
334
+ class UpdateProfile < BaseMutation
335
+ argument :uuid, ID, required: true
336
+
337
+ argument :email, String, required: false
338
+ argument :name, String, required: false
339
+ end
340
+ ```
341
+
342
+ * <a name="graphql-ordered-fields"></a>
343
+ Fields should be alphabetically sorted within groups.
344
+ <sup>[[link](#graphql-ordered-fields)]</sup>
345
+
346
+ ```ruby
347
+ # bad
348
+ class UpdateProfile < BaseMutation
349
+ field :phone, String, null: true
350
+ field :name, String, null: true
351
+ end
352
+
353
+ # good
354
+ class UpdateProfile < BaseMutation
355
+ field :name, String, null: true
356
+ field :phone, String, null: true
357
+ end
358
+
359
+ # good
360
+ class UpdateProfile < BaseMutation
361
+ field :phone, String, null: true
362
+
363
+ field :name, String, null: true
364
+ end
365
+ ```
366
+
367
+ * <a name="graphql-resolver-method-length"></a>
368
+ The length of a resolver method should not exceed 10 lines.
369
+ <sup>[[link](#graphql-resolver-method-length)]</sup>
370
+
371
+ * <a name="graphql-unnecessary-argument-camelize"></a>
372
+ Avoid using :camelize option for arguments where it is unnecessary.
373
+ <sup>[[link](#graphql-unnecessary-argument-camelize)]</sup>
374
+
375
+ ```ruby
376
+ # bad
377
+ class UserType < BaseType
378
+ argument :filter, String, required: false, camelize: false
379
+ end
380
+
381
+ # good
382
+ class UserType < BaseType
383
+ argument :filter, String, required: false
384
+ end
385
+
386
+ # good
387
+ class UserType < BaseType
388
+ argument :email_filter, String, required: false, camelize: true
389
+ end
390
+ ```
391
+
392
+ * <a name="graphql-unnecessary-field-alias"></a>
393
+ Avoid defining an unnecessary alias, method, or resolver_method.
394
+ <sup>[[link](#graphql-unnecessary-field-alias)]</sup>
395
+
396
+ ```ruby
397
+ # bad
398
+ field :name, String, "Name of the user", null: true, alias: :name
399
+ field :name, String, "Name of the user", null: true, method: :name
400
+ field :name, String, "Name of the user", null: true, resolver_method: :name
401
+ field :name, String, "Name of the user", null: true, hash_key: :name
402
+
403
+ # good
404
+ field :name, String, "Name of the user", null: true, alias: :real_name
405
+ field :name, String, "Name of the user", null: true, method: :real_name
406
+ field :name, String, "Name of the user", null: true, resolver_method: :real_name
407
+ field :name, String, "Name of the user", null: true, hash_key: :real_name
408
+ ```
409
+
410
+ * <a name="graphql-unnecessary-field-camelize"></a>
411
+ Avoid using :camelize option for fields where it is unnecessary.
412
+ <sup>[[link](#graphql-unnecessary-field-camelize)]</sup>
413
+
414
+ ```ruby
415
+ # bad
416
+ class UserType < BaseType
417
+ field :name, "Name of the user", String, null: true, camelize: true
418
+ end
419
+
420
+ # good
421
+ class UserType < BaseType
422
+ field :name, String, "Name of the user", null: true
423
+ end
424
+
425
+ # good
426
+ class UserType < BaseType
427
+ field :first_name, "Name of the user", String, null: true, camelize: true
428
+ end
429
+ ```
430
+
431
+ * <a name="graphql-unused-argument"></a>
432
+ Arguments should either be listed explicitly or **rest should be in the resolve signature (and similar methods, such as #authorized?).
433
+ <sup>[[link](#graphql-unused-argument)]</sup>
434
+
435
+ ```ruby
436
+ # bad
437
+ class SomeResolver < Resolvers::Base
438
+ type SomeType, null: false
439
+
440
+ argument :arg1, String, required: true
441
+ argument :arg2, String, required: true
442
+
443
+ def authorized?; end
444
+ def resolve(arg1:); end
445
+ end
446
+
447
+ # bad
448
+ class SomeResolver < Resolvers::Base
449
+ type SomeType, null: false
450
+
451
+ argument :arg1, String, required: true
452
+ argument :arg2, String, required: true
453
+
454
+ def resolve; end
455
+ end
456
+
457
+ # good
458
+ class SomeResolver < Resolvers::Base
459
+ argument :arg1, String, required: true
460
+ argument :user_id, String, required: true, loads: Types::UserType
461
+ argument :post_id, String, loads: Types::PostType, as: :article
462
+ argument :comment_ids, String, loads: Types::CommentType
463
+
464
+ def authorized?(arg1:, user:, article:, comments:); end
465
+ def resolve(arg1:, user:, article:, comments:); end
466
+ end
467
+
468
+ # good
469
+ class SomeResolver < Resolvers::Base
470
+ argument :arg1, String, required: true
471
+ argument :user_id, String, required: true, loads: Types::UserType
472
+ argument :comment_ids, String, loads: Types::CommentType
473
+
474
+ def resolve(arg1:, **rest); end
475
+ end
476
+
477
+ # good
478
+ class SomeResolver < Resolvers::Base
479
+ type SomeType, null: false
480
+
481
+ argument :arg1, String, required: true
482
+ argument :arg2, String, required: true
483
+
484
+ def resolve(args); end
485
+ end
486
+ ```
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "pathname"
4
- require_relative "./todo_list_formatter/report_summary"
4
+ require_relative "todo_list_formatter/report_summary"
5
5
 
6
6
  # This formatter works like default formattter (display dots for files with no offenses and
7
7
  # letters for files with problems in the them).
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DatarocketsStyle
4
- VERSION = "1.4.0"
4
+ VERSION = "1.5.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datarockets-style
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Dubrovsky
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-11 00:00:00.000000000 Z
11
+ date: 2023-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -16,42 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.45.1
19
+ version: 1.56.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.45.1
26
+ version: 1.56.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop-graphql
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.4'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rubocop-rails
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: 2.17.4
47
+ version: '2.21'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: 2.17.4
54
+ version: '2.21'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rubocop-rspec
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: 2.18.1
61
+ version: '2.24'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: 2.18.1
68
+ version: '2.24'
55
69
  description:
56
70
  email:
57
71
  - r.dubrovsky@datarockets.com
@@ -78,12 +92,14 @@ files:
78
92
  - bin/console
79
93
  - bin/setup
80
94
  - config/base.yml
95
+ - config/graphql.yml
81
96
  - config/rails-locales.yml
82
97
  - config/rails.yml
83
98
  - config/rspec.yml
84
99
  - config/ruby.yml
85
100
  - datarockets-style.gemspec
86
101
  - doc/STYLE_GUIDE.md
102
+ - doc/STYLE_GUIDE_GRAPHQL.md
87
103
  - doc/STYLE_GUIDE_RAILS.md
88
104
  - doc/STYLE_GUIDE_RSPEC.md
89
105
  - lib/datarockets_style.rb
@@ -108,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
124
  requirements:
109
125
  - - ">="
110
126
  - !ruby/object:Gem::Version
111
- version: 2.6.0
127
+ version: 2.7.0
112
128
  required_rubygems_version: !ruby/object:Gem::Requirement
113
129
  requirements:
114
130
  - - ">="