yard_ghurt 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -1
- data/README.md +29 -1
- data/bin/yard_ghurt +29 -0
- data/lib/yard_ghurt.rb +61 -1
- data/lib/yard_ghurt/anchor_links.rb +17 -3
- data/lib/yard_ghurt/version.rb +1 -1
- data/yard_ghurt.gemspec +4 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d6655a3fefa8677dd2b00ea73dbd7b87cf1c6d13b888ed67c29feb899f2555e
|
4
|
+
data.tar.gz: 52ffccc6f6a7d98e7865396b1c8c3e2b8c9a58452d3e724b0d0eb0c75e3495ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcab8039ee10ff48858cd161483bbbc32ebe23a038f32303defe23081932ab4bc97b7e0d64a4de15307c14993cdf4d311d7385ed00a920af324b641b3e11d110
|
7
|
+
data.tar.gz: 31b278e7cbc842b3431eda53f8737bf957ff7068c4796ca984c0362040777b31f8542270e0844942b7a47906b464a41be7cf155712f4a9f1a05b2a41c391ad93
|
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,21 @@
|
|
2
2
|
|
3
3
|
Format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
4
4
|
|
5
|
-
## [[Unreleased]](https://github.com/esotericpig/yard_ghurt/compare/v1.
|
5
|
+
## [[Unreleased]](https://github.com/esotericpig/yard_ghurt/compare/v1.2.0...master)
|
6
|
+
|
7
|
+
## [v1.2.0] - 2020-02-29
|
8
|
+
### Added
|
9
|
+
- bin/yard_ghurt
|
10
|
+
- For getting the GitHub/YARDoc anchor link ID from a string
|
11
|
+
- App class
|
12
|
+
- AnchorLinks.escape()
|
13
|
+
|
14
|
+
### Changed
|
15
|
+
- README to talk about bin/yard_ghurt
|
16
|
+
|
17
|
+
### Fixed
|
18
|
+
- In AnchorLinks, don't use obsolete method URI.escape()/encode()
|
19
|
+
- This outputted a lot of warnings
|
6
20
|
|
7
21
|
## [v1.1.0] - 2019-07-31
|
8
22
|
### Added
|
data/README.md
CHANGED
@@ -20,6 +20,7 @@
|
|
20
20
|
- [GHPSyncTask](#ghpsynctask)
|
21
21
|
- [Util / YardGhurt](#util--yardghurt)
|
22
22
|
- [AnchorLinks](#anchorlinks)
|
23
|
+
- [CLI App](#cli-app)
|
23
24
|
- [Hacking](#hacking)
|
24
25
|
- [Testing](#testing)
|
25
26
|
- [Tests](#tests)
|
@@ -244,6 +245,33 @@ puts al.to_github_anchor_id(name) # this-is-another-test-1
|
|
244
245
|
puts al.to_github_anchor_id(name) # this-is-another-test-1
|
245
246
|
```
|
246
247
|
|
248
|
+
## [CLI App](#contents)
|
249
|
+
A CLI app has been added for convenience for when writing your own README.
|
250
|
+
|
251
|
+
On the command line:
|
252
|
+
```
|
253
|
+
$ yard_ghurt -g "What's this ID?"
|
254
|
+
# => whats-this-id
|
255
|
+
|
256
|
+
$ yard_ghurt -y "What's this ID?"
|
257
|
+
# => What_s_this_ID_
|
258
|
+
|
259
|
+
$ yard_ghurt -a "What's this ID?"
|
260
|
+
# => GitHub: whats-this-id
|
261
|
+
# YARDoc: What_s_this_ID_
|
262
|
+
```
|
263
|
+
|
264
|
+
Help:
|
265
|
+
```
|
266
|
+
Usage: yard_ghurt [options]
|
267
|
+
-a, --anchor <string> Print GitHub & YARDoc anchor link IDs of <string>
|
268
|
+
-g, --github <string> Print GitHub anchor link ID of <string>
|
269
|
+
-y, --yard <string> Print YARDoc anchor link ID of <string>
|
270
|
+
---
|
271
|
+
-h, --help Print this help
|
272
|
+
-v, --version Print the version
|
273
|
+
```
|
274
|
+
|
247
275
|
## [Hacking](#contents)
|
248
276
|
|
249
277
|
```
|
@@ -324,7 +352,7 @@ Newline
|
|
324
352
|
[GNU LGPL v3+](LICENSE.txt)
|
325
353
|
|
326
354
|
> YardGhurt (<https://github.com/esotericpig/yard_ghurt>)
|
327
|
-
> Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
|
355
|
+
> Copyright (c) 2019-2020 Jonathan Bradley Whited (@esotericpig)
|
328
356
|
>
|
329
357
|
> YardGhurt is free software: you can redistribute it and/or modify
|
330
358
|
> it under the terms of the GNU Lesser General Public License as published by
|
data/bin/yard_ghurt
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
|
5
|
+
#--
|
6
|
+
# This file is part of YardGhurt.
|
7
|
+
# Copyright (c) 2020 Jonathan Bradley Whited (@esotericpig)
|
8
|
+
#
|
9
|
+
# YardGhurt is free software: you can redistribute it and/or modify
|
10
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
11
|
+
# the Free Software Foundation, either version 3 of the License, or
|
12
|
+
# (at your option) any later version.
|
13
|
+
#
|
14
|
+
# YardGhurt is distributed in the hope that it will be useful,
|
15
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
+
# GNU Lesser General Public License for more details.
|
18
|
+
#
|
19
|
+
# You should have received a copy of the GNU Lesser General Public License
|
20
|
+
# along with YardGhurt. If not, see <https://www.gnu.org/licenses/>.
|
21
|
+
#++
|
22
|
+
|
23
|
+
|
24
|
+
require 'yard_ghurt'
|
25
|
+
|
26
|
+
|
27
|
+
# @since 1.2.0
|
28
|
+
yg = YardGhurt::App.new()
|
29
|
+
yg.run()
|
data/lib/yard_ghurt.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
#--
|
6
6
|
# This file is part of YardGhurt.
|
7
|
-
# Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
|
7
|
+
# Copyright (c) 2019-2020 Jonathan Bradley Whited (@esotericpig)
|
8
8
|
#
|
9
9
|
# YardGhurt is free software: you can redistribute it and/or modify
|
10
10
|
# it under the terms of the GNU Lesser General Public License as published by
|
@@ -21,12 +21,14 @@
|
|
21
21
|
#++
|
22
22
|
|
23
23
|
|
24
|
+
require 'optparse'
|
24
25
|
require 'yard_ghurt/anchor_links'
|
25
26
|
require 'yard_ghurt/gfm_fix_task'
|
26
27
|
require 'yard_ghurt/ghp_sync_task'
|
27
28
|
require 'yard_ghurt/util'
|
28
29
|
require 'yard_ghurt/version'
|
29
30
|
|
31
|
+
|
30
32
|
###
|
31
33
|
# YARDoc GitHub Rake Tasks
|
32
34
|
#
|
@@ -37,4 +39,62 @@ module YardGhurt
|
|
37
39
|
# Internal code should use +Util.+!
|
38
40
|
# See {Util} for details.
|
39
41
|
include Util
|
42
|
+
|
43
|
+
###
|
44
|
+
# A simple CLI app used in file +bin/yard_ghurt+.
|
45
|
+
#
|
46
|
+
# Mainly for getting GitHub/YARDoc anchor link IDs.
|
47
|
+
#
|
48
|
+
# @author Jonathan Bradley Whited (@esotericpig)
|
49
|
+
# @since 1.2.0
|
50
|
+
###
|
51
|
+
class App
|
52
|
+
attr_reader :args
|
53
|
+
|
54
|
+
def initialize(args=ARGV)
|
55
|
+
super()
|
56
|
+
|
57
|
+
@args = args
|
58
|
+
end
|
59
|
+
|
60
|
+
def run()
|
61
|
+
parser = OptionParser.new() do |op|
|
62
|
+
op.program_name = 'yard_ghurt'
|
63
|
+
op.version = VERSION
|
64
|
+
|
65
|
+
op.banner = "Usage: #{op.program_name} [options]"
|
66
|
+
|
67
|
+
op.on('-a','--anchor <string>','Print GitHub & YARDoc anchor link IDs of <string>') do |str|
|
68
|
+
al = AnchorLinks.new()
|
69
|
+
puts "GitHub: #{al.to_github_anchor_id(str)}"
|
70
|
+
puts "YARDoc: #{al.to_yard_anchor_id(str)}"
|
71
|
+
exit
|
72
|
+
end
|
73
|
+
op.on('-g','--github <string>','Print GitHub anchor link ID of <string>') do |str|
|
74
|
+
al = AnchorLinks.new()
|
75
|
+
puts al.to_github_anchor_id(str)
|
76
|
+
exit
|
77
|
+
end
|
78
|
+
op.on('-y','--yard <string>','Print YARDoc anchor link ID of <string>') do |str|
|
79
|
+
al = AnchorLinks.new()
|
80
|
+
puts al.to_yard_anchor_id(str)
|
81
|
+
exit
|
82
|
+
end
|
83
|
+
|
84
|
+
op.separator op.summary_indent + '---'
|
85
|
+
|
86
|
+
op.on_tail('-h','--help','Print this help') do
|
87
|
+
puts op
|
88
|
+
exit
|
89
|
+
end
|
90
|
+
op.on_tail('-v','--version','Print the version') do
|
91
|
+
puts "#{op.program_name} v#{op.version}"
|
92
|
+
exit
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
parser.parse!(@args)
|
97
|
+
puts parser # Print help if nothing was parsed
|
98
|
+
end
|
99
|
+
end
|
40
100
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
#--
|
6
6
|
# This file is part of YardGhurt.
|
7
|
-
# Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
|
7
|
+
# Copyright (c) 2019-2020 Jonathan Bradley Whited (@esotericpig)
|
8
8
|
#
|
9
9
|
# YardGhurt is free software: you can redistribute it and/or modify
|
10
10
|
# it under the terms of the GNU Lesser General Public License as published by
|
@@ -119,6 +119,20 @@ module YardGhurt
|
|
119
119
|
return self
|
120
120
|
end
|
121
121
|
|
122
|
+
# Escape +str+ for the web (e.g., "%20" for a space).
|
123
|
+
#
|
124
|
+
# Mainly used for non-English languages.
|
125
|
+
#
|
126
|
+
# @param str [String] the string to escape
|
127
|
+
#
|
128
|
+
# @return [String] the escaped string
|
129
|
+
#
|
130
|
+
# @since 1.2.0
|
131
|
+
def self.escape(str)
|
132
|
+
# URI.escape()/encode() is obsolete
|
133
|
+
return URI.encode_www_form_component(str)
|
134
|
+
end
|
135
|
+
|
122
136
|
# Merge +anchor_ids+ with {anchor_ids} and {yard_anchor_ids}.
|
123
137
|
#
|
124
138
|
# @param anchor_ids [Hash] the anchor IDs (of GFM anchor IDs to YARDoc anchor IDs) to merge
|
@@ -198,7 +212,7 @@ module YardGhurt
|
|
198
212
|
id.downcase!()
|
199
213
|
end
|
200
214
|
|
201
|
-
id =
|
215
|
+
id = self.class.escape(id) # For non-English languages
|
202
216
|
|
203
217
|
# Duplicates
|
204
218
|
dup_num = 1
|
@@ -246,7 +260,7 @@ module YardGhurt
|
|
246
260
|
id.strip!()
|
247
261
|
id.gsub!(/&[^;]+;/,'_') # Replace entities: &...;
|
248
262
|
id.gsub!(/[^a-z0-9-]/i,'_')
|
249
|
-
id =
|
263
|
+
id = self.class.escape(id) # For non-English languages
|
250
264
|
|
251
265
|
# Duplicates
|
252
266
|
orig_id = id.dup()
|
data/lib/yard_ghurt/version.rb
CHANGED
data/yard_ghurt.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of YardGhurt.
|
6
|
-
# Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
|
6
|
+
# Copyright (c) 2019-2020 Jonathan Bradley Whited (@esotericpig)
|
7
7
|
#
|
8
8
|
# YardGhurt is free software: you can redistribute it and/or modify
|
9
9
|
# it under the terms of the GNU Lesser General Public License as published by
|
@@ -44,8 +44,11 @@ Gem::Specification.new() do |spec|
|
|
44
44
|
}
|
45
45
|
|
46
46
|
spec.require_paths = ['lib']
|
47
|
+
spec.bindir = 'bin'
|
48
|
+
spec.executables = [spec.name]
|
47
49
|
|
48
50
|
spec.files = Dir.glob(File.join("{#{spec.require_paths.join(',')}}",'**','*.{erb,rb}')) +
|
51
|
+
Dir.glob(File.join(spec.bindir,'**',"{#{spec.executables.join(',')}}")) +
|
49
52
|
Dir.glob(File.join('{test,yard}','**','*.{erb,rb}')) +
|
50
53
|
%W( Gemfile #{spec.name}.gemspec Rakefile ) +
|
51
54
|
%w( CHANGELOG.md LICENSE.txt README.md )
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yard_ghurt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Bradley Whited (@esotericpig)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -83,7 +83,8 @@ dependencies:
|
|
83
83
|
description: YARDoc GitHub Rake Tasks. Fix GitHub Flavored Markdown (GFM) files.
|
84
84
|
email:
|
85
85
|
- bradley@esotericpig.com
|
86
|
-
executables:
|
86
|
+
executables:
|
87
|
+
- yard_ghurt
|
87
88
|
extensions: []
|
88
89
|
extra_rdoc_files: []
|
89
90
|
files:
|
@@ -92,6 +93,7 @@ files:
|
|
92
93
|
- LICENSE.txt
|
93
94
|
- README.md
|
94
95
|
- Rakefile
|
96
|
+
- bin/yard_ghurt
|
95
97
|
- lib/yard_ghurt.rb
|
96
98
|
- lib/yard_ghurt/anchor_links.rb
|
97
99
|
- lib/yard_ghurt/gfm_fix_task.rb
|
@@ -124,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
126
|
- !ruby/object:Gem::Version
|
125
127
|
version: '0'
|
126
128
|
requirements: []
|
127
|
-
rubygems_version: 3.
|
129
|
+
rubygems_version: 3.1.2
|
128
130
|
signing_key:
|
129
131
|
specification_version: 4
|
130
132
|
summary: YARDoc GitHub Rake Tasks
|