rubocop-g2 1.2.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: 64dda8b2be89a287968e8d948f860ae2140ed2c1f589e5cb3150cba8e7a2e027
4
- data.tar.gz: ae4ef93fc34b67da31fde41268a5d21842b38d489aae23f8bdf89777da912c2a
3
+ metadata.gz: 73b25006ca361f05cd4d35d3365cafca57d9ae3b7dfd5d216519472c1193fe2f
4
+ data.tar.gz: d9e6c137ef71450ad2f8f2de27217242c452870c0c8533062ba6cd7c66f1553a
5
5
  SHA512:
6
- metadata.gz: be9f561d528fe1a8734c13a18d9498eb2eb75a8f36506f7e99c7b014e762ad748f5b09e292beb07cd78ce4b55dfb750fb04dc3392538af64ce179b596353d05b
7
- data.tar.gz: cbd191d0249e7b9daef51e7a7114506072b7f9b8b62f4b8d56a7b4f927706f7a1feb6996e9fab7dfc0521465f75fd3555ecc7675e0e92836502394183ead34dd
6
+ metadata.gz: eb2bc7e5fba0cc4809a931742d05208e1ccbd5a82847aaa68c76a8cdafc9a94e02b35f806cf21641baa192914bf3b7146fb19a62b93e76287d682f9f8bea7097
7
+ data.tar.gz: 0a20638db84e15f0d49dba980140ebf633c36d863d82697db2c8fd85d4d1ae5690660535af65534f32b9e2331d8e63d67495c9cf862fb6c383e0ab64fadf8bda
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubocop-g2 (1.2.0)
4
+ rubocop-g2 (1.5.0)
5
5
  rubocop (>= 0.82)
6
6
  rubocop-rails (>= 2.5)
7
7
  rubocop-rspec (>= 1.39)
@@ -9,22 +9,22 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (6.0.3.4)
12
+ activesupport (6.1.4.1)
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
14
- i18n (>= 0.7, < 2)
15
- minitest (~> 5.1)
16
- tzinfo (~> 1.1)
17
- zeitwerk (~> 2.2, >= 2.2.2)
18
- ast (2.4.1)
14
+ i18n (>= 1.6, < 2)
15
+ minitest (>= 5.1)
16
+ tzinfo (~> 2.0)
17
+ zeitwerk (~> 2.3)
18
+ ast (2.4.2)
19
19
  coderay (1.1.2)
20
- concurrent-ruby (1.1.7)
20
+ concurrent-ruby (1.1.9)
21
21
  diff-lcs (1.3)
22
- i18n (1.8.5)
22
+ i18n (1.8.10)
23
23
  concurrent-ruby (~> 1.0)
24
24
  method_source (0.9.2)
25
- minitest (5.14.2)
26
- parallel (1.19.2)
27
- parser (2.7.2.0)
25
+ minitest (5.14.4)
26
+ parallel (1.21.0)
27
+ parser (3.0.2.0)
28
28
  ast (~> 2.4.1)
29
29
  pry (0.12.2)
30
30
  coderay (~> 1.1.0)
@@ -32,8 +32,8 @@ GEM
32
32
  rack (2.2.3)
33
33
  rainbow (3.0.0)
34
34
  rake (12.3.3)
35
- regexp_parser (1.8.1)
36
- rexml (3.2.4)
35
+ regexp_parser (2.1.1)
36
+ rexml (3.2.5)
37
37
  rspec (3.8.0)
38
38
  rspec-core (~> 3.8.0)
39
39
  rspec-expectations (~> 3.8.0)
@@ -47,29 +47,28 @@ GEM
47
47
  diff-lcs (>= 1.2.0, < 2.0)
48
48
  rspec-support (~> 3.8.0)
49
49
  rspec-support (3.8.3)
50
- rubocop (0.92.0)
50
+ rubocop (1.21.0)
51
51
  parallel (~> 1.10)
52
- parser (>= 2.7.1.5)
52
+ parser (>= 3.0.0.0)
53
53
  rainbow (>= 2.2.2, < 4.0)
54
- regexp_parser (>= 1.7)
54
+ regexp_parser (>= 1.8, < 3.0)
55
55
  rexml
56
- rubocop-ast (>= 0.5.0)
56
+ rubocop-ast (>= 1.9.1, < 2.0)
57
57
  ruby-progressbar (~> 1.7)
58
- unicode-display_width (>= 1.4.0, < 2.0)
59
- rubocop-ast (0.7.1)
60
- parser (>= 2.7.1.5)
61
- rubocop-rails (2.8.1)
58
+ unicode-display_width (>= 1.4.0, < 3.0)
59
+ rubocop-ast (1.11.0)
60
+ parser (>= 3.0.1.1)
61
+ rubocop-rails (2.12.2)
62
62
  activesupport (>= 4.2.0)
63
63
  rack (>= 1.1)
64
- rubocop (>= 0.87.0)
65
- rubocop-rspec (1.43.2)
66
- rubocop (~> 0.87)
67
- ruby-progressbar (1.10.1)
68
- thread_safe (0.3.6)
69
- tzinfo (1.2.7)
70
- thread_safe (~> 0.1)
71
- unicode-display_width (1.7.0)
72
- zeitwerk (2.4.0)
64
+ rubocop (>= 1.7.0, < 2.0)
65
+ rubocop-rspec (2.5.0)
66
+ rubocop (~> 1.19)
67
+ ruby-progressbar (1.11.0)
68
+ tzinfo (2.0.4)
69
+ concurrent-ruby (~> 1.0)
70
+ unicode-display_width (2.1.0)
71
+ zeitwerk (2.4.2)
73
72
 
74
73
  PLATFORMS
75
74
  ruby
@@ -82,4 +81,4 @@ DEPENDENCIES
82
81
  rubocop-g2!
83
82
 
84
83
  BUNDLED WITH
85
- 2.1.4
84
+ 2.2.23
@@ -1,13 +1,11 @@
1
- AllCops:
2
- RSpec:
3
- Patterns:
4
- - '_spec.rb$'
5
-
6
1
  Lint/Void:
7
2
  Enabled: false
8
3
 
9
4
  RSpec/LetSetup:
10
5
  Enabled: false
11
6
 
7
+ RSpec/MultipleMemoizedHelpers:
8
+ Enabled: false
9
+
12
10
  RSpec/NestedGroups:
13
11
  Max: 6
@@ -63,6 +63,9 @@ Style/FormatStringToken:
63
63
  Style/FrozenStringLiteralComment:
64
64
  Enabled: false
65
65
 
66
+ Style/HashAsLastArrayItem:
67
+ Enabled: false
68
+
66
69
  Style/HashEachMethods:
67
70
  Enabled: true
68
71
 
@@ -0,0 +1,33 @@
1
+ module RuboCop
2
+ module Cop
3
+ module G2
4
+ class AccessibleIcons < RuboCop::Cop::Cop
5
+ MSG = 'Make SVGs accessible by either marking them as decorative (`decorative: true`) '\
6
+ "or adding a label (`aria_label: t('path.to.description')`)".freeze
7
+
8
+ RESTRICT_ON_SEND = %i(inline_icon).freeze
9
+
10
+ def on_send(node)
11
+ keyword_args = array_of_kwargs node.arguments
12
+ return if args_include_decorative?(keyword_args) ^ args_include_aria_label?(keyword_args)
13
+
14
+ add_offense node
15
+ end
16
+
17
+ private
18
+
19
+ def array_of_kwargs(args)
20
+ args.find(&:hash_type?)&.children&.map(&:children) || []
21
+ end
22
+
23
+ def args_include_decorative?(args)
24
+ args.include? [s(:sym, :decorative), s(:true)]
25
+ end
26
+
27
+ def args_include_aria_label?(args)
28
+ args.any? { |arg| arg.first == s(:sym, :aria_label) && arg.last != s(:nil) }
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,5 +1,5 @@
1
1
  module RuboCop
2
2
  module G2
3
- VERSION = '1.2.0'.freeze
3
+ VERSION = '1.5.0'.freeze
4
4
  end
5
5
  end
data/lib/rubocop_g2.rb CHANGED
@@ -5,3 +5,4 @@ require_relative 'rubocop/cop/g2/ban_decorators'
5
5
  require_relative 'rubocop/cop/g2/predicate_memoization'
6
6
  require_relative 'rubocop/cop/g2/raw_connection_execute'
7
7
  require_relative 'rubocop/cop/g2/aggregates_model_boundary'
8
+ require_relative 'rubocop/cop/g2/accessible_icons'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-g2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Mannino
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-08 00:00:00.000000000 Z
11
+ date: 2021-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -126,6 +126,7 @@ files:
126
126
  - config/rspec/default.yml
127
127
  - config/ruby/default.yml
128
128
  - lib/rubocop-g2.rb
129
+ - lib/rubocop/cop/g2/accessible_icons.rb
129
130
  - lib/rubocop/cop/g2/aggregates_model_boundary.rb
130
131
  - lib/rubocop/cop/g2/ban_decorators.rb
131
132
  - lib/rubocop/cop/g2/predicate_memoization.rb