yard-link_stdlib 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/yard/cli/link_stdlib.rb +8 -1
- data/lib/yard/link_stdlib.rb +37 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3334c95ebde62bc497aaab158361d28cb88bcb3e
|
4
|
+
data.tar.gz: 04117641eaf696120948d32d3e23354308e33d77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5c660eb08a0a7656e305771d7603788b8396bec4221ee2c3030137e7ad7cfbef4682ee3a481fe62b84b3a0cd8b6972abfdc82d0fda9f39ea9ed778f161eb113
|
7
|
+
data.tar.gz: 227aa9d466ab557c835d84c581d205b79dbe993dd62fea51c868e03b0b9a8f60418944257ea20003717b060fb2fd56e2ad2dcd4e5a14a2764c0012a72275d8cd
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/lib/yard/cli/link_stdlib.rb
CHANGED
@@ -294,7 +294,14 @@ class LinkStdlib < Command
|
|
294
294
|
exit true
|
295
295
|
end
|
296
296
|
|
297
|
-
terms = args.map { |arg|
|
297
|
+
terms = args.map { |arg|
|
298
|
+
begin
|
299
|
+
Regexp.new arg
|
300
|
+
rescue RegexpError => error
|
301
|
+
Regexp.new \
|
302
|
+
Regexp.escape( YARD::LinkStdlib.normalize_name( arg ) )
|
303
|
+
end
|
304
|
+
}
|
298
305
|
|
299
306
|
log.debug "Terms:\n " + terms.map( &:to_s ).join( "\n " )
|
300
307
|
|
data/lib/yard/link_stdlib.rb
CHANGED
@@ -64,6 +64,31 @@ module LinkStdlib
|
|
64
64
|
}.freeze
|
65
65
|
|
66
66
|
|
67
|
+
# Names of valid Ruby operator methods. Used to form
|
68
|
+
# {OPERATOR_METHOD_NAME_REGEXP_FRAGMENT}.
|
69
|
+
#
|
70
|
+
# @return [::Array<::String>]
|
71
|
+
#
|
72
|
+
OPERATOR_METHOD_NAMES = \
|
73
|
+
(
|
74
|
+
%w([] []= ** ~ ~ @+ @- * / % + - >> << & ^ |) +
|
75
|
+
%w(<= < > >= <=> == === != =~ !~)
|
76
|
+
).map( &:freeze )
|
77
|
+
|
78
|
+
|
79
|
+
# {Regexp} source fragment that matches a Ruby operator method name.
|
80
|
+
#
|
81
|
+
# Used in {.normalize_name} to swap out '.' separators for '::' in operator
|
82
|
+
# methods.
|
83
|
+
#
|
84
|
+
# @return [::String]
|
85
|
+
#
|
86
|
+
OPERATOR_METHOD_NAME_REGEXP_FRAGMENT = \
|
87
|
+
OPERATOR_METHOD_NAMES.
|
88
|
+
map { |op_name| "(?:#{ Regexp.escape op_name })" }
|
89
|
+
.join '|'
|
90
|
+
|
91
|
+
|
67
92
|
# Singleton Methods
|
68
93
|
# ==========================================================================
|
69
94
|
|
@@ -267,6 +292,10 @@ module LinkStdlib
|
|
267
292
|
# YARD::LinkStdlib.normalize_name 123
|
268
293
|
# #=> raise TypeError, %(`name` must be a String, given Fixnum: 123)
|
269
294
|
#
|
295
|
+
# @example Handle operator singleton methods separated by '.'
|
296
|
+
# YARD::LinkStdlib.normalize_name 'Dir.[]'
|
297
|
+
# #=> 'Dir::[]'
|
298
|
+
#
|
270
299
|
# @param [::String] name
|
271
300
|
# Code object name, as it may appear in YARD.
|
272
301
|
#
|
@@ -278,14 +307,15 @@ module LinkStdlib
|
|
278
307
|
"`name` must be a String, given #{ name.class }: #{ name.inspect }"
|
279
308
|
end
|
280
309
|
|
281
|
-
# Strip off any leading `::`
|
282
|
-
if name.start_with? '::'
|
283
|
-
name = name[ 2..-1 ]
|
284
|
-
end
|
285
|
-
|
286
310
|
# Stdlib rdoc uses `ClassOrModule::class_method` format for class methods,
|
287
|
-
# so we want to convert to that
|
288
|
-
name.
|
311
|
+
# so we want to convert to that, and strip off any leading '::'
|
312
|
+
name.
|
313
|
+
# Strip off any leading '::'
|
314
|
+
sub( /\A::/, '' ).
|
315
|
+
# Convert most singleton methods using '.' to '::' (except operators)
|
316
|
+
sub( /\.(\w+[\?\!]?)\z/, '::\1' ).
|
317
|
+
# Convert operator singleton methods using '.' to '::'
|
318
|
+
sub( /\.(#{ OPERATOR_METHOD_NAME_REGEXP_FRAGMENT })\z/, '::\1' )
|
289
319
|
end # .normalize_name
|
290
320
|
|
291
321
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yard-link_stdlib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nrser
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yard
|