chusaku 1.4.1 → 1.5.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/.github/workflows/linting.yml +7 -3
- data/.github/workflows/testing.yml +8 -3
- data/README.md +16 -0
- data/chusaku.gemspec +5 -6
- data/lib/chusaku/cli.rb +11 -0
- data/lib/chusaku/routes.rb +4 -1
- data/lib/chusaku/version.rb +1 -1
- data/lib/chusaku.rb +4 -2
- metadata +12 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 34e6c3d99896a2ad9665c71b82575bb40491b8bcafa507560deeda2bf33b612b
|
|
4
|
+
data.tar.gz: 0ddf816adf5f24ccd5eb29d186db0e4014cd6c349fd11b950b268dd35154c3df
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fdec79c08e8a227a4e527c4325281a5499ecbbc3a511d9793b089da831aca609d260a60c013b770a1f2b49eb0cf643b222584af25f4f0d7ec719f2915f89a3a1
|
|
7
|
+
data.tar.gz: f48ff79a5d78e5e7a888f99f6e19e5e2a0e11e760f1085a0ec75c17b6f4375571cf48ab52ff9781d52cf6948131ea993bb6cc096ab63eda762df8470402e1aa5
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
name: Linting
|
|
2
2
|
on: [pull_request]
|
|
3
3
|
jobs:
|
|
4
|
-
|
|
4
|
+
lint:
|
|
5
5
|
runs-on: ubuntu-latest
|
|
6
6
|
steps:
|
|
7
|
-
-
|
|
7
|
+
- name: Checkout
|
|
8
|
+
uses: actions/checkout@v4
|
|
9
|
+
|
|
8
10
|
- name: Set up Ruby
|
|
9
11
|
uses: ruby/setup-ruby@v1
|
|
10
12
|
with:
|
|
11
|
-
ruby-version:
|
|
13
|
+
ruby-version: 4.0
|
|
14
|
+
bundler: 4
|
|
12
15
|
bundler-cache: true
|
|
16
|
+
|
|
13
17
|
- name: Run Standard
|
|
14
18
|
run: bundle exec standardrb --fail-level A
|
|
@@ -5,13 +5,18 @@ jobs:
|
|
|
5
5
|
runs-on: ubuntu-latest
|
|
6
6
|
strategy:
|
|
7
7
|
matrix:
|
|
8
|
-
ruby-version: ["3.
|
|
8
|
+
ruby-version: ["3.2", "3.3", "3.4", "4.0"]
|
|
9
|
+
|
|
9
10
|
steps:
|
|
10
|
-
-
|
|
11
|
+
- name: Checkout
|
|
12
|
+
uses: actions/checkout@v4
|
|
13
|
+
|
|
11
14
|
- name: Set up Ruby
|
|
12
15
|
uses: ruby/setup-ruby@v1
|
|
13
16
|
with:
|
|
14
17
|
ruby-version: ${{ matrix.ruby-version }}
|
|
18
|
+
bundler: 4
|
|
15
19
|
bundler-cache: true
|
|
20
|
+
|
|
16
21
|
- name: Run tests
|
|
17
|
-
run: bundle exec rake
|
|
22
|
+
run: bundle exec rake test
|
data/README.md
CHANGED
|
@@ -17,6 +17,21 @@ def update
|
|
|
17
17
|
end
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
+
With `--format=rdoc`:
|
|
21
|
+
|
|
22
|
+
```ruby
|
|
23
|
+
# Route:: GET /waterlilies/:id (waterlily)
|
|
24
|
+
def show
|
|
25
|
+
# ...
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Route:: PATCH /waterlilies/:id (waterlily)
|
|
29
|
+
# Route:: PUT /waterlilies/:id (waterlily)
|
|
30
|
+
def update
|
|
31
|
+
# ...
|
|
32
|
+
end
|
|
33
|
+
```
|
|
34
|
+
|
|
20
35
|
Based on your `routes.rb` file!
|
|
21
36
|
|
|
22
37
|
|
|
@@ -54,6 +69,7 @@ Usage: chusaku [options]
|
|
|
54
69
|
--exit-with-error-on-annotation Fail if any file was annotated
|
|
55
70
|
-c, --controllers-pattern=GLOB Specify alternative controller files glob pattern
|
|
56
71
|
-e, --exclusion-pattern=GLOB Specify controller files exclusion glob pattern
|
|
72
|
+
-f, --format=FORMAT Annotation style: yard (default) or rdoc
|
|
57
73
|
--verbose Print all annotated files
|
|
58
74
|
-v, --version Show Chusaku version number and quit
|
|
59
75
|
-h, --help Show this help message and quit
|
data/chusaku.gemspec
CHANGED
|
@@ -23,8 +23,7 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.metadata["source_code_uri"] = spec.homepage
|
|
24
24
|
spec.metadata["changelog_uri"] = spec.homepage
|
|
25
25
|
else
|
|
26
|
-
raise "RubyGems 2.0 or newer is required to protect against "
|
|
27
|
-
"public gem pushes."
|
|
26
|
+
raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
|
28
27
|
end
|
|
29
28
|
|
|
30
29
|
# Specify which files should be added to the gem when it is released.
|
|
@@ -39,10 +38,10 @@ Gem::Specification.new do |spec|
|
|
|
39
38
|
spec.executables = "chusaku"
|
|
40
39
|
spec.require_paths = ["lib"]
|
|
41
40
|
|
|
42
|
-
spec.add_development_dependency "bundler", "~>
|
|
43
|
-
spec.add_development_dependency "minitest", "~> 5
|
|
44
|
-
spec.add_development_dependency "rake", "~> 13
|
|
45
|
-
spec.add_development_dependency "
|
|
41
|
+
spec.add_development_dependency "bundler", "~> 4"
|
|
42
|
+
spec.add_development_dependency "minitest", "~> 5"
|
|
43
|
+
spec.add_development_dependency "rake", "~> 13"
|
|
44
|
+
spec.add_development_dependency "standard", "~> 1"
|
|
46
45
|
|
|
47
46
|
spec.add_dependency "railties", ">= 3.0"
|
|
48
47
|
end
|
data/lib/chusaku/cli.rb
CHANGED
|
@@ -58,6 +58,7 @@ module Chusaku
|
|
|
58
58
|
add_error_on_annotation_flag(opts)
|
|
59
59
|
add_controllers_pattern_flag(opts)
|
|
60
60
|
add_exclusion_pattern_flag(opts)
|
|
61
|
+
add_format_flag(opts)
|
|
61
62
|
add_verbose_flag(opts)
|
|
62
63
|
add_version_flag(opts)
|
|
63
64
|
add_help_flag(opts)
|
|
@@ -104,6 +105,16 @@ module Chusaku
|
|
|
104
105
|
end
|
|
105
106
|
end
|
|
106
107
|
|
|
108
|
+
# Adds `--format` flag.
|
|
109
|
+
#
|
|
110
|
+
# @param opts [OptionParser] OptionParser instance
|
|
111
|
+
# @return [void]
|
|
112
|
+
def add_format_flag(opts)
|
|
113
|
+
opts.on("-f", "--format=FORMAT", %w[yard rdoc], "Annotation style: yard (default) or rdoc") do |value|
|
|
114
|
+
@options[:format] = value.to_sym
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
107
118
|
# Adds `--verbose` flag.
|
|
108
119
|
#
|
|
109
120
|
# @param opts [OptionParser] OptionParser instance
|
data/lib/chusaku/routes.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require "active_support/inflector"
|
|
2
|
+
|
|
1
3
|
module Chusaku
|
|
2
4
|
# Handles extracting information about the Rails project's routes.
|
|
3
5
|
class Routes
|
|
@@ -192,7 +194,8 @@ module Chusaku
|
|
|
192
194
|
controller = defaults.delete(:controller)
|
|
193
195
|
action = defaults.delete(:action)
|
|
194
196
|
|
|
195
|
-
|
|
197
|
+
controller_name = ActiveSupport::Inflector.camelize(ActiveSupport::Inflector.underscore(controller))
|
|
198
|
+
controller_class = controller ? ActiveSupport::Inflector.constantize("#{controller_name}Controller") : nil
|
|
196
199
|
action_method_name = action&.to_sym
|
|
197
200
|
source_path =
|
|
198
201
|
if !action_method_name.nil? && controller_class&.method_defined?(action_method_name)
|
data/lib/chusaku/version.rb
CHANGED
data/lib/chusaku.rb
CHANGED
|
@@ -105,6 +105,7 @@ module Chusaku
|
|
|
105
105
|
return unless group[:type] == :comment
|
|
106
106
|
|
|
107
107
|
group[:body] = group[:body].gsub(/^\s*#\s*@route.*$\n/, "")
|
|
108
|
+
group[:body] = group[:body].gsub(/^\s*#\s*Route::.*$\n/, "")
|
|
108
109
|
group[:body] =
|
|
109
110
|
group[:body].gsub(%r{^\s*# (GET|POST|PATCH/PUT|DELETE) /\S+$\n}, "")
|
|
110
111
|
end
|
|
@@ -134,7 +135,8 @@ module Chusaku
|
|
|
134
135
|
# @param source_path [String] Path to controller file
|
|
135
136
|
# @return [String] "@route <verb> <path> {<defaults>} (<name>)"
|
|
136
137
|
def annotate_route(verb:, path:, name:, defaults:, source_path:)
|
|
137
|
-
|
|
138
|
+
prefix = (@flags[:format] == :rdoc) ? "Route::" : "@route"
|
|
139
|
+
annotation = "#{prefix} #{verb} #{path}"
|
|
138
140
|
if defaults&.any?
|
|
139
141
|
defaults_str =
|
|
140
142
|
defaults
|
|
@@ -188,7 +190,7 @@ module Chusaku
|
|
|
188
190
|
#
|
|
189
191
|
# @return [String] 'r' or 'w'
|
|
190
192
|
def file_mode
|
|
191
|
-
File.
|
|
193
|
+
File.method_defined?(:test_write) ? "r" : "w"
|
|
192
194
|
end
|
|
193
195
|
|
|
194
196
|
# Output results to user.
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chusaku
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nishiki Liu
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: bundler
|
|
@@ -16,56 +15,56 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - "~>"
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
18
|
+
version: '4'
|
|
20
19
|
type: :development
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - "~>"
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
25
|
+
version: '4'
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: minitest
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
30
|
- - "~>"
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '5
|
|
32
|
+
version: '5'
|
|
34
33
|
type: :development
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - "~>"
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '5
|
|
39
|
+
version: '5'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: rake
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
44
|
- - "~>"
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '13
|
|
46
|
+
version: '13'
|
|
48
47
|
type: :development
|
|
49
48
|
prerelease: false
|
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
50
|
requirements:
|
|
52
51
|
- - "~>"
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '13
|
|
53
|
+
version: '13'
|
|
55
54
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
55
|
+
name: standard
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
58
|
- - "~>"
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '1
|
|
60
|
+
version: '1'
|
|
62
61
|
type: :development
|
|
63
62
|
prerelease: false
|
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
64
|
requirements:
|
|
66
65
|
- - "~>"
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '1
|
|
67
|
+
version: '1'
|
|
69
68
|
- !ruby/object:Gem::Dependency
|
|
70
69
|
name: railties
|
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -114,7 +113,6 @@ metadata:
|
|
|
114
113
|
homepage_uri: https://github.com/nshki/chusaku
|
|
115
114
|
source_code_uri: https://github.com/nshki/chusaku
|
|
116
115
|
changelog_uri: https://github.com/nshki/chusaku
|
|
117
|
-
post_install_message:
|
|
118
116
|
rdoc_options: []
|
|
119
117
|
require_paths:
|
|
120
118
|
- lib
|
|
@@ -129,8 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
129
127
|
- !ruby/object:Gem::Version
|
|
130
128
|
version: '0'
|
|
131
129
|
requirements: []
|
|
132
|
-
rubygems_version:
|
|
133
|
-
signing_key:
|
|
130
|
+
rubygems_version: 4.0.6
|
|
134
131
|
specification_version: 4
|
|
135
132
|
summary: Annotate your Rails controllers with route info.
|
|
136
133
|
test_files: []
|