rubocop-grape 0.2.1 → 0.2.2

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: '02479172353db2e2fea8b532d01cf2dde616c7751e0d81a4a550227789128fc7'
4
- data.tar.gz: 83cc6fcfe0f01e021e4bedd257a5e2162f4a20c4f35aad28e5dcf04f2364706d
3
+ metadata.gz: 92c8005ffcb25101074781a0e8ef2dde2eec522fe78d8c8a56c2b4bc19f0ecec
4
+ data.tar.gz: 91e7e2fa44a245223f72235c9655a9d124232f09ecb27eb32bae8a7d01725294
5
5
  SHA512:
6
- metadata.gz: 46c7d251b5e0882e72a76d1aa77271f04386141a172a5b4d054ff079957b4a43f2ffe1cfdba7d993ed83aa868bcaac6366db9cbfb2882c6b01acbe6f9631ba49
7
- data.tar.gz: bd9bb8ca47a1c2cca8eaf6b08ec39ea9d80d69e59ecb32225909b1da83ee38a516c1cf8e65e7a14d2c8e322ea5a8b0a356a5bad2a1243623263b40c4381b070a
6
+ metadata.gz: 6becb4f74dcfaa3c922a5c4aab58f4b540286f412c2d4c697aea3bfe69ce16d32ce795b0944b7e1401fd8ed98aa0f779a95d54ce7a1e51b053084cf4bafcd8d9
7
+ data.tar.gz: 507a763177ce9a01c1b50fbe067a37c40673c673a469daea3d3c6180dedeac16671e87bbbb3c2b64c625be599dcc020ebacd964804dad6d26f6206915038a864
data/config/default.yml CHANGED
@@ -1,6 +1,12 @@
1
1
  AllCops:
2
2
  GrapeDir: 'app/api'
3
3
 
4
+ Grape/FieldName:
5
+ EnforcedStyle: snake_case
6
+ SupportedStyles:
7
+ - snake_case
8
+ - camelCase
9
+
4
10
  Grape/RouteParamType:
5
11
  Enabled: true
6
12
  Safe: false
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Grape
6
+ # @example EnforcedStyle: snake_case (default)
7
+ # # bad
8
+ # params do
9
+ # requires :userName
10
+ # optional :phoneNumber
11
+ # end
12
+ #
13
+ # # good
14
+ # params do
15
+ # requires :user_name
16
+ # optional :phone_number
17
+ # end
18
+ #
19
+ # @example EnforcedStyle: camelCase
20
+ # # bad
21
+ # params do
22
+ # requires :user_name
23
+ # optional :phone_number
24
+ # end
25
+ #
26
+ # # good
27
+ # params do
28
+ # requires :userName
29
+ # optional :phoneNumber
30
+ # end
31
+ #
32
+ class FieldName < Base
33
+ include ConfigurableNaming
34
+ include RangeHelp
35
+
36
+ MSG = 'Use %<style>s for field names.'
37
+
38
+ def_node_matcher :params_block?, <<~PATTERN
39
+ (block (send _ :params) _ $_)
40
+ PATTERN
41
+
42
+ def_node_matcher :field_name, <<~PATTERN
43
+ (send _ {:requires :optional} (sym $_) ...)
44
+ PATTERN
45
+
46
+ def on_block(node)
47
+ return unless (body = params_block?(node))
48
+
49
+ if body.type == :begin
50
+ body.children.each(&method(:check_field_name))
51
+ else
52
+ check_field_name(body)
53
+ end
54
+ end
55
+
56
+ private
57
+
58
+ def check_field_name(node)
59
+ field = node.children[2]
60
+ check_name(node, field_name(node), field.source_range)
61
+ end
62
+
63
+ def message(style)
64
+ format(MSG, style: style)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'grape/field_name'
3
4
  require_relative 'grape/ivar'
4
5
  require_relative 'grape/params_position'
5
6
  require_relative 'grape/route_param_type'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module Grape
5
- VERSION = '0.2.1'
5
+ VERSION = '0.2.2'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-grape
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akito Hikasa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-02 00:00:00.000000000 Z
11
+ date: 2023-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -44,6 +44,7 @@ files:
44
44
  - bin/console
45
45
  - config/default.yml
46
46
  - lib/rubocop-grape.rb
47
+ - lib/rubocop/cop/grape/field_name.rb
47
48
  - lib/rubocop/cop/grape/ivar.rb
48
49
  - lib/rubocop/cop/grape/params_position.rb
49
50
  - lib/rubocop/cop/grape/route_param_type.rb
@@ -75,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
76
  - !ruby/object:Gem::Version
76
77
  version: '0'
77
78
  requirements: []
78
- rubygems_version: 3.3.7
79
+ rubygems_version: 3.2.33
79
80
  signing_key:
80
81
  specification_version: 4
81
82
  summary: Automatice Grape code style checking tool.