rubocop-sensei 0.1.4 → 0.1.6

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: 8d4a1cf8bbb4e4c757fd5a37288f228f286243226a0b41e6fd5386b4395a6dda
4
- data.tar.gz: bae6d9d937f300e9810d17b7b9c89e526e098dfe7a55377e6b85adb72f8fb399
3
+ metadata.gz: 47bef4bcd3ea0dc376372709a49308840b766ca216fcb05017f4a6900c31dd83
4
+ data.tar.gz: f2b90b2573cf06ac25b91a44f150038d9343e6a020e63a5cc65e7a7b246ba569
5
5
  SHA512:
6
- metadata.gz: 40d8370cffef0daab2933942f350f5cd9c45f1ada6bdae61995d718d5fd2264edf01e64dd75b00b69b3dd8e9cb6ba3807bc33579c884a02b26e2cfcb05a8881c
7
- data.tar.gz: e2124c88db4b76cb21bc2fd38a6fb17afbb227def1cacc49b97144b16905c64c0aa1f4897662a3546c6e73929b302c089341f4ecdddc03f72fc365bf93259c0a
6
+ metadata.gz: ad93f37ce2557726a5594662eb38fd4d75946cc2d46ba7673c602ee8353dfc1c565e633ab76d4088521b6f1d1dcb6fe64b9ab98111aa9ffdf323be1bb4ddaf05
7
+ data.tar.gz: 4bc4eac17a618626da23e88f7fe31f6d31b02ce766459145acdc23c8418c494ca0abce72e64862b9da861878ef2d66e3015903c8b749df76e207c6d04b4bc930
data/.rubocop.yml CHANGED
@@ -1,8 +1,14 @@
1
1
  AllCops:
2
2
  NewCops: enable
3
3
  SuggestExtensions: false
4
- TargetRubyVersion: 2.7
4
+ TargetRubyVersion: 3.0
5
5
 
6
6
  Naming/FileName:
7
7
  Exclude:
8
8
  - lib/rubocop-sensei.rb
9
+
10
+ require:
11
+ - rubocop-sensei
12
+
13
+ Lecture:
14
+ Enabled: true
data/CHANGELOG.md ADDED
@@ -0,0 +1,34 @@
1
+ # Change log
2
+
3
+ ## 0.1.6 (2023-07-18)
4
+
5
+ - Lecture/ExplainPatternMatchIn
6
+ - Lecture/ExplainPatternMatchRocket
7
+
8
+ ## 0.1.5 (2023-07-15)
9
+
10
+ - Lecture/ExplainPatternMatchCaseIn
11
+ - Lecture/ExplainNumberedParameters
12
+
13
+ ## 0.1.4 (2023-01-21)
14
+
15
+ - Lecture/PreferMap
16
+ - Lecture/PreferSymbolToProc
17
+ - Lecture/ExplainSymbolToProc
18
+
19
+ ## 0.1.3 (2023-01-05)
20
+
21
+ - Lecture/UnlessElse
22
+
23
+ ## 0.1.2 (2023-01-02)
24
+
25
+ - bug fix
26
+
27
+ ## 0.1.1 (2022-12-31)
28
+
29
+ - bug fix
30
+
31
+ ## 0.1.0 (2022-12-30)
32
+
33
+ - Initial Release
34
+ - Lecture/ReplaceElsif
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubocop-sensei (0.1.4)
4
+ rubocop-sensei (0.1.6)
5
5
  rubocop
6
6
  typeprof
7
7
 
@@ -9,52 +9,56 @@ GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  ast (2.4.2)
12
- debug (1.7.1)
12
+ debug (1.8.0)
13
13
  irb (>= 1.5.0)
14
14
  reline (>= 0.3.1)
15
15
  diff-lcs (1.5.0)
16
16
  io-console (0.6.0)
17
- irb (1.6.2)
18
- reline (>= 0.3.0)
17
+ irb (1.7.3)
18
+ reline (>= 0.3.6)
19
19
  json (2.6.3)
20
- minitest (5.17.0)
21
- parallel (1.22.1)
22
- parser (3.2.0.0)
20
+ language_server-protocol (3.17.0.3)
21
+ minitest (5.18.1)
22
+ parallel (1.23.0)
23
+ parser (3.2.2.3)
23
24
  ast (~> 2.4.1)
25
+ racc
26
+ racc (1.7.1)
24
27
  rainbow (3.1.1)
25
28
  rake (13.0.6)
26
- rbs (2.8.3)
27
- regexp_parser (2.6.2)
28
- reline (0.3.2)
29
+ rbs (3.1.0)
30
+ regexp_parser (2.8.1)
31
+ reline (0.3.6)
29
32
  io-console (~> 0.5)
30
33
  rexml (3.2.5)
31
34
  rspec (3.12.0)
32
35
  rspec-core (~> 3.12.0)
33
36
  rspec-expectations (~> 3.12.0)
34
37
  rspec-mocks (~> 3.12.0)
35
- rspec-core (3.12.0)
38
+ rspec-core (3.12.2)
36
39
  rspec-support (~> 3.12.0)
37
- rspec-expectations (3.12.1)
40
+ rspec-expectations (3.12.3)
38
41
  diff-lcs (>= 1.2.0, < 2.0)
39
42
  rspec-support (~> 3.12.0)
40
- rspec-mocks (3.12.1)
43
+ rspec-mocks (3.12.6)
41
44
  diff-lcs (>= 1.2.0, < 2.0)
42
45
  rspec-support (~> 3.12.0)
43
- rspec-support (3.12.0)
44
- rubocop (1.43.0)
46
+ rspec-support (3.12.1)
47
+ rubocop (1.54.2)
45
48
  json (~> 2.3)
49
+ language_server-protocol (>= 3.17.0)
46
50
  parallel (~> 1.10)
47
- parser (>= 3.2.0.0)
51
+ parser (>= 3.2.2.3)
48
52
  rainbow (>= 2.2.2, < 4.0)
49
53
  regexp_parser (>= 1.8, < 3.0)
50
54
  rexml (>= 3.2.5, < 4.0)
51
- rubocop-ast (>= 1.24.1, < 2.0)
55
+ rubocop-ast (>= 1.28.0, < 2.0)
52
56
  ruby-progressbar (~> 1.7)
53
57
  unicode-display_width (>= 2.4.0, < 3.0)
54
- rubocop-ast (1.24.1)
55
- parser (>= 3.1.1.0)
56
- ruby-progressbar (1.11.0)
57
- typeprof (0.21.4)
58
+ rubocop-ast (1.29.0)
59
+ parser (>= 3.2.1.0)
60
+ ruby-progressbar (1.13.0)
61
+ typeprof (0.21.7)
58
62
  rbs (>= 1.8.1)
59
63
  unicode-display_width (2.4.2)
60
64
 
data/LICENSE.txt ADDED
@@ -0,0 +1,13 @@
1
+ Copyright 2023 Kuniaki Igarashi
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
data/README.md CHANGED
@@ -1,13 +1,20 @@
1
1
  # RuboSensei
2
2
 
3
3
  - RuboSensei は書いたRuby/Railsコードに対して、より良い書き方を教えてくれるツールです
4
- - RuboCop gem の仕組みをつかっています
4
+ - RuboCop Gem の仕組みをつかっています
5
5
  - rubocopコマンドで良い書き方のアドバイスが表示されます
6
- - VSCodeプラグイン [Ruby Light](https://marketplace.visualstudio.com/items?itemName=r7kamura.vscode-ruby-light) をつかうと書いたコードのそばに表示できます
6
+ - RuboCop に標準で入っているLSPをつかうとエディタ上で書いたコードのそばに表示できます
7
7
 
8
+ ![demo](demo.png)
8
9
  ![demo](demo.gif)
9
10
 
10
- # 使い方
11
+ # 実装されているアドバイス
12
+
13
+ - [config/default.yml](config/default.yml)
14
+
15
+ # つかい方
16
+
17
+ ## インストール
11
18
 
12
19
  - Gemfile に以下を追加します。
13
20
 
@@ -31,13 +38,15 @@ Lecture:
31
38
  Enabled: true
32
39
  ```
33
40
 
41
+ ## rubocopコマンドからつかう
42
+
34
43
  - rubocop コマンドを実行します
35
44
  - $ bundle exec rubocop
36
45
 
37
46
  - rubocop コマンドに `--autocorrect` オプションを渡すと、対応している項目は自動修正も行います
38
47
  - $ bundle exec rubocop --autocorrect
39
48
 
40
- # 実行結果例
49
+ - 実行結果例
41
50
 
42
51
  ```
43
52
  app/models/book.rb:12:5: C: Lecture/PreferMap: このeachメソッドはmapメソッドで置き換えられるかもしれません。
@@ -46,10 +55,23 @@ app/models/book.rb:12:5: C: Lecture/PreferMap: このeachメソッドはmapメ
46
55
  ^^^^^^^^^^^^^^^^^
47
56
  ```
48
57
 
49
- # .rubocop.yml の例
58
+ ## VSCode で書いているコード上にアドバイスする
59
+
60
+ - VSCode で書いているコード上でリアルタイムにアドバイスを表示できます
61
+ - RuboCopに標準で入っているLSP機能と、VSCode拡張 vscode-rubocop をつかいます
62
+ - VSCode拡張 vscode-rubocop をVSCodeへインストールして有効にします
63
+ - https://marketplace.visualstudio.com/items?itemName=rubocop.vscode-rubocop
64
+ - rubocopコマンドが実行可能になっていれば、自動でRuboCopを実行して結果を表示します
65
+ - 手動でLSPを起動するコマンドを実行する必要はありません
50
66
 
51
- - もしも.rubocop.ymlがないときは、たとえば次のような内容で作成します
52
- - RuboCopデフォルトの検査のうちStyle, LintカテゴリだけをONにするときの.rubocop.ymlの例
67
+ # .rubocop.yml の書き方例
68
+
69
+ - RuboSenseiのアドバイスはLectureカテゴリとしてまとめられています
70
+
71
+ ## プロジェクトの.rubocop.ymlがないとき
72
+
73
+ - たとえば次のような内容で作成します
74
+ - RuboCopデフォルトの検査のうちStyle, LintカテゴリだけをONにして、RuboSenseiのアドバイス(Lectureカテゴリ)をONにするときの.rubocop.ymlの例
53
75
 
54
76
  ```
55
77
  AllCops:
@@ -69,7 +91,7 @@ Lecture:
69
91
  Enabled: true
70
92
  ```
71
93
 
72
- - RuboCopデフォルトの検査をオフにしてRuboSenseiが出力するLectureカテゴリだけをONにするときの.rubocop.ymlの例
94
+ - RuboCopデフォルトの検査をオフにしてRuboSenseiのアドバイス(Lectureカテゴリ)をONにするときの.rubocop.ymlの例
73
95
 
74
96
  ```yaml
75
97
  AllCops:
@@ -85,6 +107,44 @@ Lecture/ReplaceElsif:
85
107
  Enabled: true
86
108
  ```
87
109
 
110
+ ## プロジェクトの.rubocop.ymlがあるとき
111
+
112
+ - require設定に rubocop-sensei を追加します
113
+
114
+ ```yaml
115
+ require:
116
+ - rubocop-sensei
117
+ ```
118
+
119
+ - カテゴリ設定に Lecture を有効にする設定を追加します
120
+
121
+ ```yaml
122
+ Lecture:
123
+ Enabled: true
124
+ ```
125
+
126
+ ## アドバイスを非表示にするとき
127
+
128
+ - RuboSenseiのアドバイス表示時に書かれている名前を指定してEnabled: false設定を追記します
129
+
130
+ ```yaml
131
+ Lecture:
132
+ Enabled: true
133
+
134
+ Lecture/ReplaceElsif:
135
+ Enabled: false
136
+ ```
137
+
138
+ - 全アドバイスをオフにするときはLectureカテゴリをEnabled: falseにします
139
+ - または、Lectureカテゴリの設定を削除します
140
+
141
+ ```yaml
142
+ Lecture:
143
+ Enabled: false
144
+ ```
145
+
88
146
  # License
89
147
 
90
- MIT
148
+ - Apache License Version 2.0
149
+ - https://www.apache.org/licenses/LICENSE-2.0
150
+ - (RuboSensei v0.1.4 まではMITライセンス)
data/config/default.yml CHANGED
@@ -1,24 +1,44 @@
1
- Lecture/ExplainSymbolToProc :
2
- Description: 'Explain receiver.method(&:method)'
1
+ Lecture/ExplainNumberedParameters:
2
+ Description: "ナンバーパラメータの説明"
3
3
  Enabled: true
4
- VersionAdded: '0.1.4'
4
+ VersionAdded: "0.1.5"
5
5
 
6
- Lecture/PreferSymbolToProc:
7
- Description: 'might be replaced with method(&:method)'
6
+ Lecture/ExplainPatternMatchCaseIn:
7
+ Description: "パターンマッチ case in の説明"
8
+ Enabled: true
9
+ VersionAdded: "0.1.5"
10
+
11
+ Lecture/ExplainPatternMatchIn:
12
+ Description: "1行パターンマッチ in の説明"
13
+ Enabled: true
14
+ VersionAdded: "0.1.6"
15
+
16
+ Lecture/ExplainPatternMatchRocket:
17
+ Description: "1行パターンマッチ => の説明"
8
18
  Enabled: true
9
- VersionAdded: '0.1.4'
19
+ VersionAdded: "0.1.6"
20
+
21
+ Lecture/ExplainSymbolToProc :
22
+ Description: "receiver.method(&:method) の説明"
23
+ Enabled: true
24
+ VersionAdded: "0.1.4"
10
25
 
11
26
  Lecture/PreferMap:
12
- Description: '`each` can be replaced with `map`'
27
+ Description: "この each メソッドは map メソッドで書き換えられるかもしれません"
28
+ Enabled: true
29
+ VersionAdded: "0.1.4"
30
+
31
+ Lecture/PreferSymbolToProc:
32
+ Description: "method(&:method) で書き換えられるかもしれません"
13
33
  Enabled: true
14
- VersionAdded: '0.1.3'
34
+ VersionAdded: "0.1.4"
15
35
 
16
36
  Lecture/ReplaceElsif:
17
- Description: "`elsif` can be replaced with `case`"
37
+ Description: "elsif case で書き換えよう"
18
38
  Enabled: true
19
39
  VersionAdded: "0.1.0"
20
40
 
21
41
  Lecture/UnlessElse:
22
- Description: "Do not use `unless` with `else`. Rewrite these with the positive case first."
42
+ Description: "unless else はやめてif に書き換えよう"
23
43
  Enabled: true
24
44
  VersionAdded: "0.1.3"
data/demo.gif CHANGED
Binary file
data/demo.png ADDED
Binary file
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Lecture
6
+ # foo.bar{ _1.baz } は foo.bar{|x| x.baz } と同じです。
7
+ # _1と書くことで、||で囲まれたブロック変数を書かずに短く書けます。
8
+ # ナンバーパラメータと呼ばれます。
9
+ # _1, _2, _3, ... と複数書くこともできます。
10
+ # foo.bar{ [_1,_2] } は foo.bar{|x,y| [x,y] }と同じです。
11
+ #
12
+ # @example
13
+ # # good
14
+ # foo.bar{ _1.baz }
15
+ #
16
+ # # good
17
+ # foo.bar{|x| x.baz }
18
+ #
19
+ class ExplainNumberedParameters < Base
20
+ MSG = <<~STRING
21
+ foo.bar{ _1.baz } は foo.bar{|x| x.baz } と同じです。
22
+ _1と書くことで、||で囲まれたブロック変数を書かずに短く書けます。
23
+ ナンバーパラメータと呼ばれます。
24
+ _1, _2, _3, ... と複数書くこともできます。
25
+ foo.bar{ [_1,_2] } は foo.bar{|x,y| [x,y] }と同じです。
26
+ STRING
27
+
28
+ def on_numblock(node)
29
+ add_offense(node)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Lecture
6
+ # case in はパターンマッチ構文です。次のようにつかいます。
7
+ # case [1,2,3]
8
+ # in [x,2,3]
9
+ # end
10
+ # p x #=> 1
11
+ # caseにつづけて書いた式(この例では [1,2,3] )を実行して、結果とマッチするものをin節に書いたパターン群から探します。
12
+ # in節には変数入りのパターンを書くことができ、caseにつづけて書いた式の結果とパターンとを対応させ、それぞれの変数に代入します。
13
+ #
14
+ # 便利なケースは、深いハッシュや配列にマッチさせるときや、複数の変数に代入するときです。
15
+ # case { a: [1,2,3], b: { c: 10 }}
16
+ # in { a: [x,2,3], b: { c: y }}
17
+ # end
18
+ # p x #=> 1
19
+ # p y #=> 10
20
+ #
21
+ # @example
22
+ # # good
23
+ # case [1,2,3]
24
+ # in [x,2,3]
25
+ # in [x,5,6]
26
+ # end
27
+ #
28
+ class ExplainPatternMatchCaseIn < Base
29
+ MSG = <<~STRING
30
+ case in はパターンマッチ構文です。次のようにつかいます。
31
+ case [1,2,3]
32
+ in [x,2,3]
33
+ end
34
+ p x #=> 1
35
+ caseにつづけて書いた式(例では [1,2,3] )を実行して、結果とマッチするものをin節に書いたパターン群から探します。
36
+ in節には変数入りのパターンを書くことができ、caseにつづけて書いた式の結果とパターンとを対応させ、それぞれの変数に代入します。
37
+ STRING
38
+
39
+ # 1行inでは呼ばれないことを確認済み
40
+ def on_case_match(node)
41
+ add_offense(node)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Lecture
6
+ # 1行パターンマッチです。
7
+ # [1,2,3] in [x,y,3]
8
+ # p x #=> 1
9
+ # p y #=> 2
10
+ # inの右側には変数入りのパターンを書くことができ、左側と対応させ、それぞれの変数に代入します。
11
+ #
12
+ # @example
13
+ # # good
14
+ # 5 => x
15
+ # p x #=> 5
16
+ #
17
+ # # good
18
+ # [1,2,3] in [x,y,3]
19
+ # p x #=> 1
20
+ # p y #=> 2
21
+ #
22
+ class ExplainPatternMatchIn < Base
23
+ MSG = <<~STRING
24
+ 1行パターンマッチです。
25
+ inの右側には変数入りのパターンを書くことができ、左側と対応させ、それぞれの変数に代入します。
26
+
27
+ [1,2,3] in [x,y,3]
28
+ p x #=> 1
29
+ p y #=> 2
30
+
31
+ 5 in x
32
+ p x #=> 5
33
+ STRING
34
+
35
+ def on_match_pattern_p(node)
36
+ add_offense(node)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Lecture
6
+ # 1行パターンマッチです。
7
+ # [1,2,3] => [x,y,3]
8
+ # p x #=> 1
9
+ # p y #=> 2
10
+ # =>の右側には変数入りのパターンを書くことができ、左側と対応させ、それぞれの変数に代入します。
11
+ #
12
+ # @example
13
+ # # good
14
+ # 5 => x
15
+ # p x #=> 5
16
+ #
17
+ # # good
18
+ # [1,2,3] => [x,y,3]
19
+ # p x #=> 1
20
+ # p y #=> 2
21
+ #
22
+ class ExplainPatternMatchRocket < Base
23
+ MSG = <<~STRING
24
+ 1行パターンマッチです。
25
+ =>の右側には変数入りのパターンを書くことができ、左側と対応させ、それぞれの変数に代入します。
26
+
27
+ [1,2,3] => [x,y,3]
28
+ p x #=> 1
29
+ p y #=> 2
30
+
31
+ 5 => x
32
+ p x #=> 5
33
+ STRING
34
+
35
+ def on_match_pattern(node)
36
+ add_offense(node)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -10,7 +10,7 @@ module RuboCop
10
10
  # end
11
11
  #
12
12
  # @example
13
- # # bad
13
+ # # good
14
14
  # ["a","b","c"].map do |x|
15
15
  # x.upcase
16
16
  # end
@@ -1,5 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'lecture/explain_numbered_parameters'
4
+ require_relative 'lecture/explain_pattern_match_case_in'
5
+ require_relative 'lecture/explain_pattern_match_in'
6
+ require_relative 'lecture/explain_pattern_match_rocket'
3
7
  require_relative 'lecture/prefer_symbol_to_proc'
4
8
  require_relative 'lecture/explain_symbol_to_proc'
5
9
  require_relative 'lecture/prefer_map'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module Sensei
5
- VERSION = "0.1.4"
5
+ VERSION = "0.1.6"
6
6
  end
7
7
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = "Rubocop Sensei"
12
12
  spec.description = "."
13
13
  spec.homepage = "https://github.com/igaiga/rubocop-sensei"
14
- spec.required_ruby_version = ">= 2.7.0"
14
+ spec.required_ruby_version = ">= 3.0.0"
15
15
 
16
16
  # spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
17
17
 
@@ -0,0 +1,8 @@
1
+ AllCops:
2
+ DisabledByDefault: true
3
+
4
+ require:
5
+ - rubocop-sensei
6
+
7
+ Lecture:
8
+ Enabled: true
data/sample/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rubocop", require: false
6
+ gem "rubocop-sensei", require: false
@@ -0,0 +1,41 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ ast (2.4.2)
5
+ json (2.6.3)
6
+ parallel (1.23.0)
7
+ parser (3.2.2.1)
8
+ ast (~> 2.4.1)
9
+ rainbow (3.1.1)
10
+ rbs (3.0.4)
11
+ regexp_parser (2.8.0)
12
+ rexml (3.2.5)
13
+ rubocop (1.50.2)
14
+ json (~> 2.3)
15
+ parallel (~> 1.10)
16
+ parser (>= 3.2.0.0)
17
+ rainbow (>= 2.2.2, < 4.0)
18
+ regexp_parser (>= 1.8, < 3.0)
19
+ rexml (>= 3.2.5, < 4.0)
20
+ rubocop-ast (>= 1.28.0, < 2.0)
21
+ ruby-progressbar (~> 1.7)
22
+ unicode-display_width (>= 2.4.0, < 3.0)
23
+ rubocop-ast (1.28.0)
24
+ parser (>= 3.2.1.0)
25
+ rubocop-sensei (0.1.4)
26
+ rubocop
27
+ typeprof
28
+ ruby-progressbar (1.13.0)
29
+ typeprof (0.21.7)
30
+ rbs (>= 1.8.1)
31
+ unicode-display_width (2.4.2)
32
+
33
+ PLATFORMS
34
+ arm64-darwin-22
35
+
36
+ DEPENDENCIES
37
+ rubocop
38
+ rubocop-sensei
39
+
40
+ BUNDLED WITH
41
+ 2.4.10
data/sample/target.rb ADDED
@@ -0,0 +1,4 @@
1
+ result = []
2
+ a.each do |x|
3
+ result << x * 2
4
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-sensei
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kuniaki Igarashi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-21 00:00:00.000000000 Z
11
+ date: 2023-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -47,14 +47,20 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - ".rspec"
49
49
  - ".rubocop.yml"
50
+ - CHANGELOG.md
50
51
  - Gemfile
51
52
  - Gemfile.lock
52
- - 'LICENSE '
53
+ - LICENSE.txt
53
54
  - README.md
54
55
  - Rakefile
55
56
  - config/default.yml
56
57
  - demo.gif
58
+ - demo.png
57
59
  - lib/rubocop-sensei.rb
60
+ - lib/rubocop/cop/lecture/explain_numbered_parameters.rb
61
+ - lib/rubocop/cop/lecture/explain_pattern_match_case_in.rb
62
+ - lib/rubocop/cop/lecture/explain_pattern_match_in.rb
63
+ - lib/rubocop/cop/lecture/explain_pattern_match_rocket.rb
58
64
  - lib/rubocop/cop/lecture/explain_symbol_to_proc.rb
59
65
  - lib/rubocop/cop/lecture/prefer_map.rb
60
66
  - lib/rubocop/cop/lecture/prefer_symbol_to_proc.rb
@@ -65,6 +71,10 @@ files:
65
71
  - lib/rubocop/sensei/inject.rb
66
72
  - lib/rubocop/sensei/version.rb
67
73
  - rubocop-sensei.gemspec
74
+ - sample/.rubocop.yml
75
+ - sample/Gemfile
76
+ - sample/Gemfile.lock
77
+ - sample/target.rb
68
78
  - sig/rubocop/sensei.rbs
69
79
  homepage: https://github.com/igaiga/rubocop-sensei
70
80
  licenses: []
@@ -79,14 +89,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
89
  requirements:
80
90
  - - ">="
81
91
  - !ruby/object:Gem::Version
82
- version: 2.7.0
92
+ version: 3.0.0
83
93
  required_rubygems_version: !ruby/object:Gem::Requirement
84
94
  requirements:
85
95
  - - ">="
86
96
  - !ruby/object:Gem::Version
87
97
  version: '0'
88
98
  requirements: []
89
- rubygems_version: 3.4.3
99
+ rubygems_version: 3.4.16
90
100
  signing_key:
91
101
  specification_version: 4
92
102
  summary: Rubocop Sensei
data/LICENSE DELETED
@@ -1,9 +0,0 @@
1
- MIT License
2
-
3
- Copyright 2022 Kuniaki Igarashi
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
-
7
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
-
9
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.