source2md 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/output.md +26 -7
- data/lib/source2md/cli.rb +1 -0
- data/lib/source2md/code_block.rb +1 -1
- data/lib/source2md/generator.rb +20 -8
- data/lib/source2md/version.rb +1 -1
- data/spec/generator_spec.rb +51 -0
- data/spec/spec_helper.rb +8 -0
- metadata +5 -4
- data/output.md +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 562135200c7492a703d690fe621a77ef6341567ef499a0a868033db4c93f0d72
|
4
|
+
data.tar.gz: 9bb67852ae6ae568edded0478116ea78e9e24ce58d58ce16df0c6b692f515f59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 619ff51efb9c41fe3cbeea92774fc3e853e5c915fde446f9118f1af9c5dc6262ea510430c7e48bf338f822d3f6f58d9f2d69e095c04c035d02d63c84c6f82a1b
|
7
|
+
data.tar.gz: cf9e28c97304ba30b623a5d7f66a4c79ba47231f5ce8d3ac1c8452e5beeaba9c1f77f379be37412bc94eddceafd53261f5cf6e99020d4d7a4a230a80daf45cf1
|
data/examples/output.md
CHANGED
@@ -1,11 +1,30 @@
|
|
1
|
+
## (title) ##
|
2
|
+
|
3
|
+
### (name1) ###
|
4
|
+
|
5
|
+
(desc1)
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
"foo1".size # => 4
|
9
|
+
```
|
10
|
+
|
11
|
+
(comment1)
|
12
|
+
|
13
|
+
### (name2) ###
|
14
|
+
|
15
|
+
(desc2)
|
16
|
+
|
1
17
|
```ruby
|
2
|
-
#
|
3
|
-
# frequencies: frequencies1.rb
|
4
|
-
# ```
|
18
|
+
"foo2".size # => 4
|
5
19
|
```
|
6
20
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
21
|
+
(comment2)
|
22
|
+
|
23
|
+
| x | x | x |
|
24
|
+
|---|---|---|
|
25
|
+
| x | x | x |
|
26
|
+
| x | x | x |
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
1 + 2 # => 3
|
11
30
|
```
|
data/lib/source2md/cli.rb
CHANGED
@@ -34,6 +34,7 @@ module Source2MD
|
|
34
34
|
map "g" => :generate
|
35
35
|
desc "generate [files]", "Markdown generation"
|
36
36
|
option :output_file, type: :string, aliases: "-o", default: nil
|
37
|
+
option :glob, type: :string, aliases: "-g"
|
37
38
|
def generate(*files)
|
38
39
|
Generator.new(options.to_options.merge(files: files)).call
|
39
40
|
end
|
data/lib/source2md/code_block.rb
CHANGED
data/lib/source2md/generator.rb
CHANGED
@@ -12,14 +12,10 @@ module Source2MD
|
|
12
12
|
end
|
13
13
|
|
14
14
|
if output_file
|
15
|
-
|
16
|
-
|
15
|
+
temporarily_disable_write_protection do
|
16
|
+
output_file.write(to_md)
|
17
|
+
puts "write: #{output_file}"
|
17
18
|
end
|
18
|
-
output_file.write(to_md)
|
19
|
-
if Source2MD.readonly
|
20
|
-
FileUtils.chmod("a-w", output_file)
|
21
|
-
end
|
22
|
-
puts "write: #{output_file}"
|
23
19
|
end
|
24
20
|
end
|
25
21
|
|
@@ -36,7 +32,13 @@ module Source2MD
|
|
36
32
|
end
|
37
33
|
|
38
34
|
def files
|
39
|
-
@files ||=
|
35
|
+
@files ||= yield_self do
|
36
|
+
if params[:glob]
|
37
|
+
Pathname.glob(params[:glob])
|
38
|
+
else
|
39
|
+
Array(params[:files]).collect { |e| Pathname(e).expand_path }
|
40
|
+
end
|
41
|
+
end
|
40
42
|
end
|
41
43
|
|
42
44
|
def output_file
|
@@ -46,5 +48,15 @@ module Source2MD
|
|
46
48
|
end
|
47
49
|
end
|
48
50
|
end
|
51
|
+
|
52
|
+
def temporarily_disable_write_protection
|
53
|
+
if output_file.exist?
|
54
|
+
FileUtils.chmod("a+w", output_file)
|
55
|
+
end
|
56
|
+
yield
|
57
|
+
if Source2MD.readonly
|
58
|
+
FileUtils.chmod("a-w", output_file)
|
59
|
+
end
|
60
|
+
end
|
49
61
|
end
|
50
62
|
end
|
data/lib/source2md/version.rb
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module Source2MD
|
4
|
+
describe Generator do
|
5
|
+
before do
|
6
|
+
Pathname("_input.rb").write("# (content)")
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
Pathname("_input.rb").delete
|
11
|
+
Pathname("_output.md").delete rescue nil
|
12
|
+
end
|
13
|
+
|
14
|
+
it "files option" do
|
15
|
+
output = capture("stdout") do
|
16
|
+
Generator.new(files: ["_input.rb"]).call
|
17
|
+
end
|
18
|
+
assert { output == "(content)\n" }
|
19
|
+
end
|
20
|
+
|
21
|
+
it "glob option" do
|
22
|
+
output = capture("stdout") do
|
23
|
+
Generator.new(glob: "_i*.rb").call
|
24
|
+
end
|
25
|
+
assert { output == "(content)\n" }
|
26
|
+
end
|
27
|
+
|
28
|
+
it "output file is write protected" do
|
29
|
+
capture("stdout") do
|
30
|
+
Generator.new(files: ["_input.rb"], output_file: "_output.md").call
|
31
|
+
end
|
32
|
+
assert { Pathname("_output.md").stat.writable? == false }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
# >> .F
|
37
|
+
# >>
|
38
|
+
# >> Failures:
|
39
|
+
# >>
|
40
|
+
# >> 1) Source2MD::Generator glob option
|
41
|
+
# >> Failure/Error: Unable to find - to read failed line
|
42
|
+
# >> Test::Unit::AssertionFailedError:
|
43
|
+
# >> # -:25:in `block (2 levels) in <module:Source2MD>'
|
44
|
+
# >>
|
45
|
+
# >> Finished in 0.01412 seconds (files took 0.28313 seconds to load)
|
46
|
+
# >> 2 examples, 1 failure
|
47
|
+
# >>
|
48
|
+
# >> Failed examples:
|
49
|
+
# >>
|
50
|
+
# >> rspec -:21 # Source2MD::Generator glob option
|
51
|
+
# >>
|
data/spec/spec_helper.rb
CHANGED
@@ -18,3 +18,11 @@ RSpec.configure do |config|
|
|
18
18
|
config.expect_with :test_unit
|
19
19
|
config.example_status_persistence_file_path = "#{__dir__}/.all_test_result.txt"
|
20
20
|
end
|
21
|
+
|
22
|
+
if true
|
23
|
+
require "tempfile" # for capture
|
24
|
+
require "active_support/testing/stream"
|
25
|
+
RSpec.configure do |config|
|
26
|
+
config.include ActiveSupport::Testing::Stream
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: source2md
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Ikeda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -212,7 +212,6 @@ files:
|
|
212
212
|
- lib/source2md/tasks/test.rake
|
213
213
|
- lib/source2md/text_helper.rb
|
214
214
|
- lib/source2md/version.rb
|
215
|
-
- output.md
|
216
215
|
- source2md.gemspec
|
217
216
|
- spec/code_block_spec.rb
|
218
217
|
- spec/formatter/sample.yml
|
@@ -228,6 +227,7 @@ files:
|
|
228
227
|
- spec/formatter/type_text_spec.rb
|
229
228
|
- spec/formatter/type_title_spec.rb
|
230
229
|
- spec/formatter/type_warn_spec.rb
|
230
|
+
- spec/generator_spec.rb
|
231
231
|
- spec/scanner_spec.rb
|
232
232
|
- spec/spec_helper.rb
|
233
233
|
- spec/text_helper_spec.rb
|
@@ -250,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
250
250
|
- !ruby/object:Gem::Version
|
251
251
|
version: '0'
|
252
252
|
requirements: []
|
253
|
-
rubygems_version: 3.4.
|
253
|
+
rubygems_version: 3.4.19
|
254
254
|
signing_key:
|
255
255
|
specification_version: 4
|
256
256
|
summary: Markdown generator from source code
|
@@ -269,6 +269,7 @@ test_files:
|
|
269
269
|
- spec/formatter/type_text_spec.rb
|
270
270
|
- spec/formatter/type_title_spec.rb
|
271
271
|
- spec/formatter/type_warn_spec.rb
|
272
|
+
- spec/generator_spec.rb
|
272
273
|
- spec/scanner_spec.rb
|
273
274
|
- spec/spec_helper.rb
|
274
275
|
- spec/text_helper_spec.rb
|