rubocop-nueca 1.2.3 → 1.2.5

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: a3678eac28f6575b9cee5fb58f88a02e46de0c91bf36437a242fc34208cd4da3
4
- data.tar.gz: a11bbc18d306047a0b8c1b329430b15d92bff287190adcd99e9994eceb4d33d8
3
+ metadata.gz: 86a3f50ec1bdcbb388b5843fc52caa7424579538bf73f995f3121a8e39e23544
4
+ data.tar.gz: e94a2e703f0ac39efa1ac5b9886fa711f7c2b5c482a6f27d9a4301af4bdae4eb
5
5
  SHA512:
6
- metadata.gz: a5ab9039fb41adbeb81026aa2d7bfa8f4f542c6566f01c0c853fce78ee6b987919750c983524eef7cc467902f7b6b1e7921a542ea48c1ff624d8eece8d96e5f1
7
- data.tar.gz: '078491a8477ad8a25a19c0a6a6e38541f599cc5d44efc35ec24974e86eec267fd1026c5517063367e7a64163f595014f1d912d6cc467f1fd828c7b044b2eb550'
6
+ metadata.gz: 330371fdc147e6d9469a230d0a47545cc8855117c2cb9c6a5ab828946eb353357579b238db05658357f3301927dc5b9da868711691a84da4975741cf369c2db6
7
+ data.tar.gz: b9941dd2e7f84e12f5ceab85b2508e185ab80f04c06d387786f51949770f8faace0c023101f99322be2fb69cc69d020ce19cb814b60be47925242b23a1660938
@@ -7,7 +7,7 @@ module RuboCop
7
7
  ROUTE_CATEGORIES = {
8
8
  simple: [:get, :post, :put, :patch, :delete, :head, :options, :match, :root],
9
9
  resource: [:resource, :resources],
10
- namespace: [:namespace, :scope, :concern],
10
+ namespace: [:namespace, :scope, :concern, :member, :collection],
11
11
  draw: [:draw]
12
12
  }.freeze
13
13
 
@@ -44,7 +44,7 @@ module RuboCop
44
44
  send_node = node.send_node
45
45
  return unless send_node.send_type? && route_method?(send_node)
46
46
 
47
- add_route_block_if_valid(node)
47
+ add_route_block_if_valid(node) unless [:member, :collection].include?(send_node.method_name)
48
48
  process_nested_context(node)
49
49
  end
50
50
 
@@ -67,19 +67,41 @@ module RuboCop
67
67
 
68
68
  def build_namespace_path(send_node)
69
69
  new_namespace_path = @namespace_path.dup
70
+ method_name = send_node.method_name
70
71
 
71
- case send_node.method_name
72
+ case method_name
72
73
  when :namespace
73
- namespace_name = extract_namespace_name(send_node)
74
- new_namespace_path << namespace_name if namespace_name
74
+ add_namespace_to_path(new_namespace_path, send_node)
75
75
  when :scope
76
- scope_name = extract_scope_name(send_node)
77
- new_namespace_path << scope_name if scope_name
76
+ add_scope_to_path(new_namespace_path, send_node)
77
+ when :resources, :resource
78
+ add_resource_to_path(new_namespace_path, send_node)
79
+ when :member, :collection
80
+ add_member_collection_to_path(new_namespace_path, method_name)
78
81
  end
79
82
 
80
83
  new_namespace_path
81
84
  end
82
85
 
86
+ def add_namespace_to_path(path, node)
87
+ namespace_name = extract_namespace_name(node)
88
+ path << namespace_name if namespace_name
89
+ end
90
+
91
+ def add_scope_to_path(path, node)
92
+ scope_name = extract_scope_name(node)
93
+ path << scope_name if scope_name
94
+ end
95
+
96
+ def add_resource_to_path(path, node)
97
+ resource_name = extract_namespace_name(node)
98
+ path << resource_name if resource_name
99
+ end
100
+
101
+ def add_member_collection_to_path(path, method_name)
102
+ path << method_name.to_s
103
+ end
104
+
83
105
  def extract_namespace_name(node)
84
106
  first_arg = node.arguments.first
85
107
  return first_arg.value.to_s if first_arg&.sym_type? || first_arg&.str_type?
@@ -199,6 +221,7 @@ module RuboCop
199
221
 
200
222
  def extract_simple_route_name(first_arg)
201
223
  return first_arg.value.to_s if first_arg&.str_type?
224
+ return first_arg.value.to_s if first_arg&.sym_type?
202
225
  return extract_hash_route_name(first_arg) if first_arg&.hash_type?
203
226
 
204
227
  'unknown'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module Nueca
5
- VERSION = '1.2.3'
5
+ VERSION = '1.2.5'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-nueca
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tien