rubocop_challenger 0.3.1 → 0.4.0
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 +4 -4
- data/.rubocop_todo.yml +6 -12
- data/Gemfile.lock +3 -1
- data/README.md +1 -1
- data/bin/create_release_pr +49 -0
- data/challenger.gemspec +1 -0
- data/lib/rubocop_challenger.rb +2 -0
- data/lib/rubocop_challenger/cli.rb +2 -2
- data/lib/rubocop_challenger/github/pr_template.rb +7 -2
- data/lib/rubocop_challenger/rubocop/rule.rb +0 -5
- data/lib/rubocop_challenger/rubocop/yardoc.rb +41 -0
- data/lib/rubocop_challenger/version.rb +1 -1
- data/lib/templates/checklist.md.erb +13 -1
- data/lib/templates/default.md.erb +13 -1
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e6ab36ea5a8373773c832d7f40e7867b857fc11682737f2a618e6ceda54ec65
|
4
|
+
data.tar.gz: f33fa38af154d266e71c48c4268cb3438e241e5575fc793080cb14f41c51392d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8919ffd26ae70dfc7752505abf9a06278fa774a9cb8e31df6698b466c0399fb7ced53560737f8bac7a07bd378e1388ae0a7a9d76a74fcf18282b70253bc67c95
|
7
|
+
data.tar.gz: 6cfe197bffdc6064494d1de3267ab64e327ce2a57e7cef1b89a24990ea62f6bd6810cbc2bb4e8286ca8f4f421a2674f9576bea9e34576e339bd48eca57456cee
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2018-10-
|
3
|
+
# on 2018-10-26 14:40:31 +0900 using RuboCop version 0.59.2.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -15,11 +15,11 @@ Layout/SpaceInsideBlockBraces:
|
|
15
15
|
Exclude:
|
16
16
|
- 'Gemfile'
|
17
17
|
|
18
|
-
# Offense count:
|
18
|
+
# Offense count: 7
|
19
19
|
# Configuration parameters: CountComments, ExcludedMethods.
|
20
20
|
# ExcludedMethods: refine
|
21
21
|
Metrics/BlockLength:
|
22
|
-
Max:
|
22
|
+
Max: 112
|
23
23
|
|
24
24
|
# Offense count: 2
|
25
25
|
# Configuration parameters: Max.
|
@@ -27,12 +27,11 @@ RSpec/ExampleLength:
|
|
27
27
|
Exclude:
|
28
28
|
- 'spec/rubocop_challenger/rubocop/todo_reader_spec.rb'
|
29
29
|
|
30
|
-
# Offense count:
|
30
|
+
# Offense count: 9
|
31
31
|
Style/Documentation:
|
32
32
|
Exclude:
|
33
33
|
- 'spec/**/*'
|
34
34
|
- 'test/**/*'
|
35
|
-
- 'lib/rubocop_challenger.rb'
|
36
35
|
- 'lib/rubocop_challenger/cli.rb'
|
37
36
|
- 'lib/rubocop_challenger/github/pr_template.rb'
|
38
37
|
- 'lib/rubocop_challenger/rubocop/challenge.rb'
|
@@ -40,6 +39,7 @@ Style/Documentation:
|
|
40
39
|
- 'lib/rubocop_challenger/rubocop/rule.rb'
|
41
40
|
- 'lib/rubocop_challenger/rubocop/todo_reader.rb'
|
42
41
|
- 'lib/rubocop_challenger/rubocop/todo_writer.rb'
|
42
|
+
- 'lib/rubocop_challenger/rubocop/yardoc.rb'
|
43
43
|
|
44
44
|
# Offense count: 1
|
45
45
|
# Cop supports --auto-correct.
|
@@ -47,13 +47,7 @@ Style/RedundantSelf:
|
|
47
47
|
Exclude:
|
48
48
|
- 'lib/rubocop_challenger/rubocop/rule.rb'
|
49
49
|
|
50
|
-
# Offense count:
|
51
|
-
# Cop supports --auto-correct.
|
52
|
-
Style/RescueModifier:
|
53
|
-
Exclude:
|
54
|
-
- 'lib/rubocop_challenger/rubocop/rule.rb'
|
55
|
-
|
56
|
-
# Offense count: 6
|
50
|
+
# Offense count: 7
|
57
51
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
58
52
|
# URISchemes: http, https
|
59
53
|
Metrics/LineLength:
|
data/Gemfile.lock
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rubocop_challenger (0.
|
4
|
+
rubocop_challenger (0.4.0)
|
5
5
|
pr-daikou (~> 0.2.0)
|
6
6
|
rubocop
|
7
7
|
rubocop-rspec
|
8
8
|
thor
|
9
|
+
yard
|
9
10
|
|
10
11
|
GEM
|
11
12
|
remote: https://rubygems.org/
|
@@ -48,6 +49,7 @@ GEM
|
|
48
49
|
ruby-progressbar (1.10.0)
|
49
50
|
thor (0.20.0)
|
50
51
|
unicode-display_width (1.4.0)
|
52
|
+
yard (0.9.16)
|
51
53
|
|
52
54
|
PLATFORMS
|
53
55
|
ruby
|
data/README.md
CHANGED
@@ -87,7 +87,7 @@ Options:
|
|
87
87
|
--name=NAME # Pull Request committer name
|
88
88
|
f, [--file-path=FILE_PATH] # Set your ".rubocop_todo.yml" path
|
89
89
|
# Default: .rubocop_todo.yml
|
90
|
-
t, [--template=TEMPLATE] # Pull Request template `erb` file path.You can use variable that `title`, `rubydoc_url` and `
|
90
|
+
t, [--template=TEMPLATE] # Pull Request template `erb` file path.You can use variable that `title`, `rubydoc_url`, `description` and `examples` into the erb file.
|
91
91
|
[--mode=MODE] # Mode to select deletion target. You can choice "most_occurrence", "least_occurrence", or "random"
|
92
92
|
# Default: most_occurrence
|
93
93
|
[--base=BASE] # Base branch of Pull Request
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# usage: bin/create_release_pr VERSION
|
5
|
+
|
6
|
+
require 'bundler/setup'
|
7
|
+
require 'rubocop_challenger'
|
8
|
+
|
9
|
+
def exit_process(error_message)
|
10
|
+
puts error_message
|
11
|
+
exit!
|
12
|
+
end
|
13
|
+
|
14
|
+
def exist_uncommitted_modify?
|
15
|
+
`git add -n .; git diff --name-only` != ''
|
16
|
+
end
|
17
|
+
|
18
|
+
VERSION_FORMAT = /\A\d+\.\d+\.\d+\z/
|
19
|
+
version = ARGV[0]
|
20
|
+
|
21
|
+
# Verifying
|
22
|
+
exit_process 'usage: bin/create_release_pr VERSION' if version.nil?
|
23
|
+
exit_process 'A version must be like a `1.2.3`' unless version =~ VERSION_FORMAT
|
24
|
+
exit_process 'There are uncommitted modify' if exist_uncommitted_modify?
|
25
|
+
|
26
|
+
# Modify a version file
|
27
|
+
File.write('lib/rubocop_challenger/version.rb', <<~VERSION)
|
28
|
+
# frozen_string_literal: true
|
29
|
+
|
30
|
+
module RubocopChallenger
|
31
|
+
VERSION = '#{version}'
|
32
|
+
end
|
33
|
+
VERSION
|
34
|
+
|
35
|
+
# Bundle Install
|
36
|
+
`bundle install`
|
37
|
+
|
38
|
+
# Create PR
|
39
|
+
PRDaikou.exec(
|
40
|
+
{
|
41
|
+
email: `git config user.email`,
|
42
|
+
name: `git config user.name`,
|
43
|
+
base: 'master',
|
44
|
+
title: "Update v#{version}",
|
45
|
+
labels: '',
|
46
|
+
topic: "update/v#{version}",
|
47
|
+
commit: "Update v#{version}"
|
48
|
+
}, nil
|
49
|
+
)
|
data/challenger.gemspec
CHANGED
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_runtime_dependency 'rubocop'
|
29
29
|
spec.add_runtime_dependency 'rubocop-rspec'
|
30
30
|
spec.add_runtime_dependency 'thor'
|
31
|
+
spec.add_runtime_dependency 'yard'
|
31
32
|
|
32
33
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
33
34
|
spec.add_development_dependency 'rake', '~> 10.0'
|
data/lib/rubocop_challenger.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'erb'
|
4
|
+
require 'yard'
|
4
5
|
require 'rubocop'
|
5
6
|
require 'rubocop-rspec'
|
6
7
|
require 'rubocop_challenger/rubocop/rule'
|
@@ -8,6 +9,7 @@ require 'rubocop_challenger/rubocop/todo_reader'
|
|
8
9
|
require 'rubocop_challenger/rubocop/todo_writer'
|
9
10
|
require 'rubocop_challenger/rubocop/command'
|
10
11
|
require 'rubocop_challenger/rubocop/challenge'
|
12
|
+
require 'rubocop_challenger/rubocop/yardoc'
|
11
13
|
require 'rubocop_challenger/cli'
|
12
14
|
require 'rubocop_challenger/version'
|
13
15
|
require 'rubocop_challenger/github/pr_template.rb'
|
@@ -22,8 +22,8 @@ module RubocopChallenger
|
|
22
22
|
type: :string,
|
23
23
|
aliases: :t,
|
24
24
|
desc: 'Pull Request template `erb` file path.' \
|
25
|
-
'You can use variable that `title`, `rubydoc_url
|
26
|
-
'`description` into the erb file.'
|
25
|
+
'You can use variable that `title`, `rubydoc_url`, ' \
|
26
|
+
'`description` and `examples` into the erb file.'
|
27
27
|
option :mode,
|
28
28
|
type: :string,
|
29
29
|
default: 'most_occurrence',
|
@@ -7,6 +7,7 @@ module RubocopChallenger
|
|
7
7
|
template_path ||= File.expand_path('../../templates/default.md.erb', __dir__)
|
8
8
|
@template = File.read(template_path)
|
9
9
|
@rule = rule
|
10
|
+
@yardoc = Rubocop::Yardoc.new(title)
|
10
11
|
end
|
11
12
|
|
12
13
|
def generate_pullrequest_markdown
|
@@ -18,7 +19,7 @@ module RubocopChallenger
|
|
18
19
|
|
19
20
|
private
|
20
21
|
|
21
|
-
attr_reader :template, :rule
|
22
|
+
attr_reader :template, :rule, :yardoc
|
22
23
|
|
23
24
|
def title
|
24
25
|
rule.title
|
@@ -29,7 +30,11 @@ module RubocopChallenger
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def description
|
32
|
-
|
33
|
+
yardoc.description
|
34
|
+
end
|
35
|
+
|
36
|
+
def examples
|
37
|
+
yardoc.examples
|
33
38
|
end
|
34
39
|
end
|
35
40
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubocopChallenger
|
4
|
+
module Rubocop
|
5
|
+
class Yardoc
|
6
|
+
def initialize(title)
|
7
|
+
@cop_class = Object.const_get("RuboCop::Cop::#{title.sub('/', '::')}")
|
8
|
+
YARD.parse(source_file_path)
|
9
|
+
@yardoc = YARD::Registry.all(:class).first
|
10
|
+
YARD::Registry.clear
|
11
|
+
end
|
12
|
+
|
13
|
+
def description
|
14
|
+
yardoc.docstring
|
15
|
+
end
|
16
|
+
|
17
|
+
def examples
|
18
|
+
yardoc.tags('example').map(&:text)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :cop_class, :yardoc
|
24
|
+
|
25
|
+
def instance_methods
|
26
|
+
[
|
27
|
+
cop_class.instance_methods(false),
|
28
|
+
cop_class.private_instance_methods(false)
|
29
|
+
].flatten!
|
30
|
+
end
|
31
|
+
|
32
|
+
def source_file_path
|
33
|
+
instance_methods
|
34
|
+
.map { |m| cop_class.instance_method(m).source_location }
|
35
|
+
.reject(&:nil?)
|
36
|
+
.map(&:first)
|
37
|
+
.first
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -4,8 +4,20 @@
|
|
4
4
|
|
5
5
|
## Description
|
6
6
|
|
7
|
+
> ### Overview
|
8
|
+
>
|
7
9
|
<% description.each_line do |line| -%>
|
8
|
-
>
|
10
|
+
<%= "> #{line}".chomp.strip %>
|
11
|
+
<% end -%>
|
12
|
+
>
|
13
|
+
> ### Examples
|
14
|
+
<% examples.each do |example| -%>
|
15
|
+
>
|
16
|
+
> ```rb
|
17
|
+
<% example.each_line do |line| -%>
|
18
|
+
<%= "> #{line}".chomp.strip %>
|
19
|
+
<% end -%>
|
20
|
+
> ```
|
9
21
|
<% end -%>
|
10
22
|
|
11
23
|
## Checklist
|
@@ -4,6 +4,18 @@
|
|
4
4
|
|
5
5
|
## Description
|
6
6
|
|
7
|
+
> ### Overview
|
8
|
+
>
|
7
9
|
<% description.each_line do |line| -%>
|
8
|
-
>
|
10
|
+
<%= "> #{line}".chomp.strip %>
|
11
|
+
<% end -%>
|
12
|
+
>
|
13
|
+
> ### Examples
|
14
|
+
<% examples.each do |example| -%>
|
15
|
+
>
|
16
|
+
> ```rb
|
17
|
+
<% example.each_line do |line| -%>
|
18
|
+
<%= "> #{line}".chomp.strip %>
|
19
|
+
<% end -%>
|
20
|
+
> ```
|
9
21
|
<% end -%>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop_challenger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ryosuke_sato
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-10-
|
11
|
+
date: 2018-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pr-daikou
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: yard
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: bundler
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,6 +158,7 @@ files:
|
|
144
158
|
- README.md
|
145
159
|
- Rakefile
|
146
160
|
- bin/console
|
161
|
+
- bin/create_release_pr
|
147
162
|
- bin/setup
|
148
163
|
- challenger.gemspec
|
149
164
|
- exe/rubocop_challenger
|
@@ -157,6 +172,7 @@ files:
|
|
157
172
|
- lib/rubocop_challenger/rubocop/rule.rb
|
158
173
|
- lib/rubocop_challenger/rubocop/todo_reader.rb
|
159
174
|
- lib/rubocop_challenger/rubocop/todo_writer.rb
|
175
|
+
- lib/rubocop_challenger/rubocop/yardoc.rb
|
160
176
|
- lib/rubocop_challenger/version.rb
|
161
177
|
- lib/templates/checklist.md.erb
|
162
178
|
- lib/templates/default.md.erb
|