ezcater_rubocop 3.0.2 → 4.0.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: de7fc9b23bdafa3b1a308dcfc89e404611d8a6d33f9b9e6a43d9d1729d221c52
4
- data.tar.gz: 04322af4861d786fd3b35be77d6f1917c0d4b0d77dcb9279c71efb0dab751294
3
+ metadata.gz: 3e4ab0e968f3876d0ce517e56e4f4d4f85d4a512148d76eddc3b90afb27b030e
4
+ data.tar.gz: 1222c65a574b4aeab13b5372a4e2fc0c4c3af89e6f611dcfd82a41879343e198
5
5
  SHA512:
6
- metadata.gz: 26e9b3cba968e6c88621d348efcc1bad551deca81cf97022a42c342f3bd1145162c14ccbb7faaf2d2d5b9abf9b2f469261a96b862a27abcf28b2067746e58786
7
- data.tar.gz: e225a8844a45e36ed48c4e9d8139d7c743376b4c4c7655d0a6b03ef3562fa627b5abc3c17959c4ab0541477301780367f71c908706cb3db734b054bead68ca0e
6
+ metadata.gz: 173c89e6a3c9eb6b022b90ccc0d28c49b44331d42617e082d5fcd1380e0c2b2ad834250608a87556c9dd5e664d770009d1499a77fa002ad4270740b1069f2b44
7
+ data.tar.gz: 924a0d9ed141df769723ed76ab30aae9625da0f1890ab75125c94f74ca1fa9e0cb6c31b0b4f8c74d0418031890c07f6f4dad1eadedbc1424e314fff32c16bc0f
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ This gem is moving onto its own [Semantic Versioning](https://semver.org/) schem
6
6
 
7
7
  Prior to v1.0.0 this gem was versioned based on the `MAJOR`.`MINOR` version of RuboCop. The first release of the ezcater_rubocop gem was `v0.49.0`.
8
8
 
9
+ ## 4.0.0
10
+
11
+ - Add the [rubcop-graphql](https://github.com/DmitryTsepelev/rubocop-graphql) helpers and enable
12
+ them by default
13
+ - Remove `Ezcater/GraphqlFieldsNaming` cop. The same rule exists in `rubocop-graphql`.
14
+
9
15
  ## v3.0.2
10
16
 
11
17
  - Loosen restrictions to allow for Ruby 3.1 and latest dependency gems
data/README.md CHANGED
@@ -82,7 +82,6 @@ This gem is using [Semantic Versioning](https://semver.org/). All version bumps
82
82
  1. [RspecRequireFeatureFlagMock](https://github.com/ezcater/ezcater_rubocop/blob/main/lib/rubocop/cop/ezcater/rspec_require_feature_flag_mock.rb) - Enforce use of `mock_feature_flag` helper instead of mocking `FeatureFlag.is_active?` directly.
83
83
  1. [RspecRequireHttpStatusMatcher](https://github.com/ezcater/ezcater_rubocop/blob/main/lib/rubocop/cop/ezcater/rspec_require_http_status_matcher.rb) - Use the HTTP status code matcher, like `expect(response).to have_http_status :bad_request`, rather than `expect(response.code).to eq 400`
84
84
  1. [StyleDig](https://github.com/ezcater/ezcater_rubocop/blob/main/lib/rubocop/cop/ezcater/style_dig.rb) - Recommend `dig` for deeply nested access.
85
- 1. [GraphqlFieldsNaming](https://github.com/ezcater/ezcater_rubocop/blob/main/lib/rubocop/cop/ezcater/graphql_fields_naming.rb) - Enforce the configured style when naming graphQL fields and arguments.
86
85
 
87
86
  ## Development
88
87
 
data/config/default.yml CHANGED
@@ -1,12 +1,3 @@
1
- Ezcater/GraphqlFieldsNaming:
2
- EnforcedStyle: snake_case
3
- Enabled: true
4
- SupportedStyles:
5
- - snake_case
6
- - camelCase
7
- Include:
8
- - "app/graphql/**/*.rb"
9
-
10
1
  Ezcater/RailsConfiguration:
11
2
  Description: "Enforce the use of `Rails.configuration` instead of `Rails.application.config`."
12
3
  Enabled: true
@@ -59,3 +50,15 @@ Ezcater/StyleDig:
59
50
  Ezcater/RubyTimeout:
60
51
  Description: "Disallow use of `Timeout.timeout` because it is unsafe and can cause unexpected behavior."
61
52
  Enabled: true
53
+
54
+ GraphQL/FieldDescription:
55
+ Enabled: false
56
+ GraphQL/ArgumentDescription:
57
+ Enabled: false
58
+ GraphQL/ObjectDescription:
59
+ Include:
60
+ - "**/types/**/*.rb"
61
+ - "**/mutations/**/*.rb"
62
+ GraphQL/ExtractInputType:
63
+ Exclude:
64
+ - "**/input_objects/**/*.rb"
@@ -53,6 +53,7 @@ Gem::Specification.new do |spec|
53
53
 
54
54
  spec.add_runtime_dependency "parser", ">= 2.6"
55
55
  spec.add_runtime_dependency "rubocop", ">= 1.16.0", "< 2.0"
56
+ spec.add_runtime_dependency "rubocop-graphql", ">= 0.14.0", "< 1.0"
56
57
  spec.add_runtime_dependency "rubocop-rails", ">= 2.10.1", "< 3.0"
57
58
  spec.add_runtime_dependency "rubocop-rspec", ">= 2.3.0", "< 3.0"
58
59
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EzcaterRubocop
4
- VERSION = "3.0.2"
4
+ VERSION = "4.0.0"
5
5
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "ezcater_rubocop/version"
4
+ require "rubocop-graphql"
4
5
  require "rubocop-rails"
5
6
  require "rubocop-rspec"
6
7
 
@@ -17,7 +18,6 @@ RuboCop::ConfigLoader.instance_variable_set(:@default_configuration, config)
17
18
 
18
19
  require "rubocop/cop/ezcater/direct_env_check"
19
20
  require "rubocop/cop/ezcater/feature_flag_active"
20
- require "rubocop/cop/ezcater/graphql_fields_naming"
21
21
  require "rubocop/cop/ezcater/rails_configuration"
22
22
  require "rubocop/cop/ezcater/rails_env"
23
23
  require "rubocop/cop/ezcater/ruby_timeout"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ezcater_rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ezCater, Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-04 00:00:00.000000000 Z
11
+ date: 2022-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -128,6 +128,26 @@ dependencies:
128
128
  - - "<"
129
129
  - !ruby/object:Gem::Version
130
130
  version: '2.0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: rubocop-graphql
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 0.14.0
138
+ - - "<"
139
+ - !ruby/object:Gem::Version
140
+ version: '1.0'
141
+ type: :runtime
142
+ prerelease: false
143
+ version_requirements: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 0.14.0
148
+ - - "<"
149
+ - !ruby/object:Gem::Version
150
+ version: '1.0'
131
151
  - !ruby/object:Gem::Dependency
132
152
  name: rubocop-rails
133
153
  requirement: !ruby/object:Gem::Requirement
@@ -193,7 +213,6 @@ files:
193
213
  - lib/ezcater_rubocop/version.rb
194
214
  - lib/rubocop/cop/ezcater/direct_env_check.rb
195
215
  - lib/rubocop/cop/ezcater/feature_flag_active.rb
196
- - lib/rubocop/cop/ezcater/graphql_fields_naming.rb
197
216
  - lib/rubocop/cop/ezcater/rails_configuration.rb
198
217
  - lib/rubocop/cop/ezcater/rails_env.rb
199
218
  - lib/rubocop/cop/ezcater/rails_top_level_sql_execute.rb
@@ -1,74 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RuboCop
4
- module Cop
5
- module Ezcater
6
- # This cop makes sure that GraphQL fields & arguments match the supported style
7
- # https://git.io/JeofW
8
- #
9
- # The cop also ignores when users provide a :camelize option, because
10
- # the user is manually requesting to override the value
11
- #
12
- # @example
13
- # # bad
14
- # field :fooBar, ID, null: false
15
- # argument :barBaz, ID, required: true
16
- #
17
- # # good
18
- # field :foo_bar, ID, null: true
19
- # field :foo_bar, ID, null: true do
20
- # argument :bar_baz, ID, required: true
21
- # end
22
- #
23
- # field :fooBar, ID, null: true, camelize: true
24
- #
25
- class GraphqlFieldsNaming < Cop
26
- include ConfigurableNaming
27
-
28
- MSG = "Use %<style>s for GraphQL fields & arguments names. " \
29
- "See https://git.io/JeofW for our guide. " \
30
- "This can be overridden with camelize."
31
- FIELD_ADDING_METHODS = %i(field argument).freeze
32
- PROCESSABLE_TYPES = %i(sym string).freeze
33
-
34
- def on_send(node)
35
- method = method_name(node)
36
- first_arg = node.first_argument
37
-
38
- return unless FIELD_ADDING_METHODS.include? method
39
- return unless PROCESSABLE_TYPES.include?(first_arg&.type)
40
-
41
- return if includes_camelize?(node)
42
-
43
- check_name(node, first_arg.value, node.first_argument)
44
- end
45
-
46
- alias on_super on_send
47
- alias on_yield on_send
48
-
49
- private
50
-
51
- def includes_camelize?(node)
52
- results = []
53
- node.last_argument.each_child_node { |arg| results << args_include_camelize?(arg) }
54
- results.any?
55
- end
56
-
57
- def args_include_camelize?(arg_pair)
58
- key_node = arg_pair.key
59
- _value_node = arg_pair.value
60
-
61
- key_node.value.match?(/camelize/)
62
- end
63
-
64
- def method_name(node)
65
- node.children[1]
66
- end
67
-
68
- def message(msg_style)
69
- format(MSG, style: msg_style)
70
- end
71
- end
72
- end
73
- end
74
- end