sord 0.3.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/Gemfile.lock +6 -2
- data/exe/sord +22 -1
- data/lib/sord/rbi_generator.rb +8 -3
- data/lib/sord/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf3418f5f5f96e17c76ee48515382ac008d975ed200eae3f837f9e136077a7f3
|
4
|
+
data.tar.gz: 2592ad90c6b6c17ec9a9c550d348a3989b4511a51b2b115643dafa05b41e9191
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4db0db07817d59efdceb9455cbf3613d4d6031d635fc40ad6dd310ad0828a6b8a6be35c6cd7e9cfa11d3cb7ab23496c851686027a82f5e6f55c034420a9c98a2
|
7
|
+
data.tar.gz: b00f3f123af693111782b734ce72d00930613408f113197bcddd182c6b36308b8f6b9e7d3cc2e0bc7a7ed15bb666aec93a9da7d2e7f9595e601ff51b7e16866a
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sord (0.
|
4
|
+
sord (0.3.0)
|
5
5
|
colorize
|
6
6
|
sorbet-runtime
|
7
7
|
yard
|
@@ -10,8 +10,11 @@ GEM
|
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
12
|
colorize (0.8.1)
|
13
|
+
commander (4.4.7)
|
14
|
+
highline (~> 2.0.0)
|
13
15
|
diff-lcs (1.3)
|
14
16
|
docile (1.3.2)
|
17
|
+
highline (2.0.2)
|
15
18
|
json (2.2.0)
|
16
19
|
rake (10.5.0)
|
17
20
|
rspec (3.8.0)
|
@@ -34,7 +37,7 @@ GEM
|
|
34
37
|
simplecov-html (0.10.2)
|
35
38
|
sorbet (0.4.4254)
|
36
39
|
sorbet-static (= 0.4.4254)
|
37
|
-
sorbet-runtime (0.4.
|
40
|
+
sorbet-runtime (0.4.4293)
|
38
41
|
sorbet-static (0.4.4254-x86_64-linux)
|
39
42
|
yard (0.9.19)
|
40
43
|
|
@@ -43,6 +46,7 @@ PLATFORMS
|
|
43
46
|
|
44
47
|
DEPENDENCIES
|
45
48
|
bundler (~> 2.0)
|
49
|
+
commander (~> 4.4)
|
46
50
|
rake (~> 10.0)
|
47
51
|
rspec (~> 3.0)
|
48
52
|
simplecov
|
data/exe/sord
CHANGED
@@ -1,4 +1,25 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'sord'
|
3
|
+
require 'commander/import'
|
3
4
|
|
4
|
-
|
5
|
+
program :name, 'sord'
|
6
|
+
program :version, Sord::VERSION
|
7
|
+
program :description, 'Generate Sorbet RBIs from YARD documentation'
|
8
|
+
|
9
|
+
default_command :gen
|
10
|
+
command :gen do |c|
|
11
|
+
c.syntax = 'sord gen <output-file> [options]'
|
12
|
+
c.description = 'Generates an RBI file from this directory\'s YARD docs'
|
13
|
+
c.option '--[no-]comments', 'Disables informational/warning comments in the RBI file'
|
14
|
+
|
15
|
+
c.action do |args, options|
|
16
|
+
options.default comments: true
|
17
|
+
|
18
|
+
if args.length != 1
|
19
|
+
Sord::Logging.error('Must specify filename')
|
20
|
+
exit 1
|
21
|
+
end
|
22
|
+
|
23
|
+
Sord::RbiGenerator.new(options).run(args.first)
|
24
|
+
end
|
25
|
+
end
|
data/lib/sord/rbi_generator.rb
CHANGED
@@ -15,15 +15,16 @@ module Sord
|
|
15
15
|
attr_reader :object_count
|
16
16
|
|
17
17
|
# Create a new RBI generator.
|
18
|
+
# @param [Hash] options
|
18
19
|
# @return [RbiGenerator]
|
19
|
-
def initialize
|
20
|
+
def initialize(options)
|
20
21
|
@rbi_contents = ['# typed: strong']
|
21
22
|
@object_count = 0
|
22
23
|
|
23
24
|
# Hook the logger so that messages are added as comments to the RBI file
|
24
25
|
Logging.add_hook do |type, msg, item|
|
25
26
|
rbi_contents << " # sord #{type} - #{msg}"
|
26
|
-
end
|
27
|
+
end if options.comments
|
27
28
|
end
|
28
29
|
|
29
30
|
# Increment the object counter.
|
@@ -84,6 +85,9 @@ module Sord
|
|
84
85
|
elsif name.start_with? '*'
|
85
86
|
# TODO: is there a YARD definition for this?
|
86
87
|
"args: T::Array[T.any]"
|
88
|
+
elsif name.start_with? '&'
|
89
|
+
# Cut the ampersand from the block parameter name.
|
90
|
+
"#{name[1..-1]}: T.untyped"
|
87
91
|
elsif meth.path.end_with? '='
|
88
92
|
# Look for the matching getter method
|
89
93
|
getter_path = meth.path[0...-1]
|
@@ -131,6 +135,8 @@ module Sord
|
|
131
135
|
# @param [String] filename
|
132
136
|
# @return [void]
|
133
137
|
def run(filename)
|
138
|
+
raise "No filename specified" unless filename
|
139
|
+
|
134
140
|
# Get YARD ready
|
135
141
|
YARD::Registry.load!
|
136
142
|
|
@@ -158,7 +164,6 @@ module Sord
|
|
158
164
|
end
|
159
165
|
|
160
166
|
# Write the file
|
161
|
-
raise "no filename specified" unless filename
|
162
167
|
File.write(filename, rbi_contents.join(?\n))
|
163
168
|
|
164
169
|
Logging.done("Processed #{object_count} objects")
|
data/lib/sord/version.rb
CHANGED