source2md 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +112 -29
  3. data/Rakefile +1 -0
  4. data/doc/0100_top.rb +7 -0
  5. data/doc/0110_code_small.rb +4 -1
  6. data/doc/0120_code_long.rb +2 -1
  7. data/doc/0130_hidden.rb +17 -0
  8. data/doc/0140_code_include.rb +26 -0
  9. data/doc/0150_raw_include.rb +16 -0
  10. data/doc/{0130_title.rb → 0160_title.rb} +8 -5
  11. data/doc/{0140_md_like_title.rb → 0170_md_like_title.rb} +9 -6
  12. data/doc/{0150_table.rb → 0180_table.rb} +2 -1
  13. data/doc/{0160_method.rb → 0190_method.rb} +2 -1
  14. data/doc/{0170_alert.rb → 0200_alert.rb} +2 -1
  15. data/doc/0210_text.rb +18 -0
  16. data/doc/0220_text_oneline.rb +18 -0
  17. data/doc/0230_parse_include.rb +18 -0
  18. data/examples/cli.rb +1 -0
  19. data/examples/element_text.rb +2 -1
  20. data/examples/scanner.rb +1 -0
  21. data/examples/{element_alert.rb → type_alert.rb} +6 -5
  22. data/examples/type_code_include.rb +21 -0
  23. data/examples/{element_md_header.rb → type_hidden.rb} +2 -1
  24. data/examples/{element_md_title.rb → type_md_title.rb} +2 -1
  25. data/examples/{element_method.rb → type_method.rb} +2 -1
  26. data/examples/{element_partial_code.rb → type_partial_code.rb} +2 -1
  27. data/examples/{element_source_block.rb → type_source_block.rb} +2 -1
  28. data/examples/{element_table.rb → type_table.rb} +1 -0
  29. data/examples/{element_deep_comment.rb → type_text.rb} +16 -10
  30. data/examples/{element_title.rb → type_title.rb} +2 -1
  31. data/examples/{element_warn.rb → type_warn.rb} +2 -1
  32. data/lib/source2md/code_block.rb +12 -6
  33. data/lib/source2md/element.rb +17 -16
  34. data/lib/source2md/{type → formatter}/base.rb +4 -5
  35. data/lib/source2md/{type/element_alert.rb → formatter/type_alert.rb} +4 -4
  36. data/lib/source2md/{type/element_include.rb → formatter/type_code_include.rb} +5 -5
  37. data/lib/source2md/{type/element_else.rb → formatter/type_else.rb} +2 -2
  38. data/lib/source2md/{type/element_reject.rb → formatter/type_hidden.rb} +4 -3
  39. data/lib/source2md/{type/element_md_title.rb → formatter/type_md_title.rb} +2 -2
  40. data/lib/source2md/formatter/type_method.rb +24 -0
  41. data/lib/source2md/formatter/type_parse_include.rb +13 -0
  42. data/lib/source2md/{type/element_partial_code.rb → formatter/type_partial_code.rb} +2 -2
  43. data/lib/source2md/formatter/type_raw_include.rb +13 -0
  44. data/lib/source2md/{type/element_source_block.rb → formatter/type_source_block.rb} +2 -2
  45. data/lib/source2md/{type/element_table.rb → formatter/type_table.rb} +2 -2
  46. data/lib/source2md/formatter/type_text.rb +31 -0
  47. data/lib/source2md/{type/element_title.rb → formatter/type_title.rb} +2 -2
  48. data/lib/source2md/{type/element_warn.rb → formatter/type_warn.rb} +4 -4
  49. data/lib/source2md/generator.rb +3 -3
  50. data/lib/source2md/scanner.rb +2 -2
  51. data/lib/source2md/text_helper.rb +5 -1
  52. data/lib/source2md/version.rb +1 -1
  53. data/spec/code_block_spec.rb +1 -1
  54. data/spec/formatter/sample.yml +1 -0
  55. data/spec/{type/element_include_spec.rb → formatter/type_code_include_spec.rb} +6 -6
  56. data/spec/{type/element_reject_spec.rb → formatter/type_hidden_spec.rb} +3 -2
  57. data/spec/formatter/type_parse_include_spec.rb +16 -0
  58. data/spec/{type/element_md_header_spec.rb → formatter/type_raw_include_spec.rb} +2 -6
  59. data/spec/{type/element_text_spec.rb → formatter/type_text_spec.rb} +14 -2
  60. metadata +67 -62
  61. data/doc/0180_text.rb +0 -15
  62. data/doc/0190_raw.rb +0 -19
  63. data/examples/element_include.rb +0 -20
  64. data/examples/element_reject.rb +0 -17
  65. data/lib/source2md/type/element_deep_comment.rb +0 -19
  66. data/lib/source2md/type/element_md_header.rb +0 -13
  67. data/lib/source2md/type/element_method.rb +0 -24
  68. data/lib/source2md/type/element_uncomment.rb +0 -24
  69. data/spec/type/sample.yml +0 -1
  70. /data/spec/{type/element_alert_spec.rb → formatter/type_alert_spec.rb} +0 -0
  71. /data/spec/{type/element_md_title_spec.rb → formatter/type_md_title_spec.rb} +0 -0
  72. /data/spec/{type/element_method_spec.rb → formatter/type_method_spec.rb} +0 -0
  73. /data/spec/{type/element_partial_code_spec.rb → formatter/type_partial_code_spec.rb} +0 -0
  74. /data/spec/{type/element_source_block_spec.rb → formatter/type_source_block_spec.rb} +0 -0
  75. /data/spec/{type/element_table_spec.rb → formatter/type_table_spec.rb} +0 -0
  76. /data/spec/{type/element_title_spec.rb → formatter/type_title_spec.rb} +0 -0
  77. /data/spec/{type/element_warn_spec.rb → formatter/type_warn_spec.rb} +0 -0
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
4
+ version: 0.0.5
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-07-16 00:00:00.000000000 Z
11
+ date: 2023-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -151,37 +151,55 @@ files:
151
151
  - doc/0100_top.rb
152
152
  - doc/0110_code_small.rb
153
153
  - doc/0120_code_long.rb
154
- - doc/0130_title.rb
155
- - doc/0140_md_like_title.rb
156
- - doc/0150_table.rb
157
- - doc/0160_method.rb
158
- - doc/0170_alert.rb
159
- - doc/0180_text.rb
160
- - doc/0190_raw.rb
154
+ - doc/0130_hidden.rb
155
+ - doc/0140_code_include.rb
156
+ - doc/0150_raw_include.rb
157
+ - doc/0160_title.rb
158
+ - doc/0170_md_like_title.rb
159
+ - doc/0180_table.rb
160
+ - doc/0190_method.rb
161
+ - doc/0200_alert.rb
162
+ - doc/0210_text.rb
163
+ - doc/0220_text_oneline.rb
164
+ - doc/0230_parse_include.rb
161
165
  - doc/setup.rb
162
166
  - examples/cli.rb
163
- - examples/element_alert.rb
164
- - examples/element_deep_comment.rb
165
- - examples/element_include.rb
166
- - examples/element_md_header.rb
167
- - examples/element_md_title.rb
168
- - examples/element_method.rb
169
- - examples/element_partial_code.rb
170
- - examples/element_reject.rb
171
- - examples/element_source_block.rb
172
- - examples/element_table.rb
173
167
  - examples/element_text.rb
174
- - examples/element_title.rb
175
- - examples/element_warn.rb
176
168
  - examples/input.rb
177
169
  - examples/input.yml
178
170
  - examples/output.md
179
171
  - examples/scanner.rb
180
172
  - examples/setup.rb
173
+ - examples/type_alert.rb
174
+ - examples/type_code_include.rb
175
+ - examples/type_hidden.rb
176
+ - examples/type_md_title.rb
177
+ - examples/type_method.rb
178
+ - examples/type_partial_code.rb
179
+ - examples/type_source_block.rb
180
+ - examples/type_table.rb
181
+ - examples/type_text.rb
182
+ - examples/type_title.rb
183
+ - examples/type_warn.rb
181
184
  - lib/source2md.rb
182
185
  - lib/source2md/cli.rb
183
186
  - lib/source2md/code_block.rb
184
187
  - lib/source2md/element.rb
188
+ - lib/source2md/formatter/base.rb
189
+ - lib/source2md/formatter/type_alert.rb
190
+ - lib/source2md/formatter/type_code_include.rb
191
+ - lib/source2md/formatter/type_else.rb
192
+ - lib/source2md/formatter/type_hidden.rb
193
+ - lib/source2md/formatter/type_md_title.rb
194
+ - lib/source2md/formatter/type_method.rb
195
+ - lib/source2md/formatter/type_parse_include.rb
196
+ - lib/source2md/formatter/type_partial_code.rb
197
+ - lib/source2md/formatter/type_raw_include.rb
198
+ - lib/source2md/formatter/type_source_block.rb
199
+ - lib/source2md/formatter/type_table.rb
200
+ - lib/source2md/formatter/type_text.rb
201
+ - lib/source2md/formatter/type_title.rb
202
+ - lib/source2md/formatter/type_warn.rb
185
203
  - lib/source2md/generator.rb
186
204
  - lib/source2md/logger.rb
187
205
  - lib/source2md/scanner.rb
@@ -189,40 +207,26 @@ files:
189
207
  - lib/source2md/tasks/about.rake
190
208
  - lib/source2md/tasks/test.rake
191
209
  - lib/source2md/text_helper.rb
192
- - lib/source2md/type/base.rb
193
- - lib/source2md/type/element_alert.rb
194
- - lib/source2md/type/element_deep_comment.rb
195
- - lib/source2md/type/element_else.rb
196
- - lib/source2md/type/element_include.rb
197
- - lib/source2md/type/element_md_header.rb
198
- - lib/source2md/type/element_md_title.rb
199
- - lib/source2md/type/element_method.rb
200
- - lib/source2md/type/element_partial_code.rb
201
- - lib/source2md/type/element_reject.rb
202
- - lib/source2md/type/element_source_block.rb
203
- - lib/source2md/type/element_table.rb
204
- - lib/source2md/type/element_title.rb
205
- - lib/source2md/type/element_uncomment.rb
206
- - lib/source2md/type/element_warn.rb
207
210
  - lib/source2md/version.rb
208
211
  - source2md.gemspec
209
212
  - spec/code_block_spec.rb
213
+ - spec/formatter/sample.yml
214
+ - spec/formatter/type_alert_spec.rb
215
+ - spec/formatter/type_code_include_spec.rb
216
+ - spec/formatter/type_hidden_spec.rb
217
+ - spec/formatter/type_md_title_spec.rb
218
+ - spec/formatter/type_method_spec.rb
219
+ - spec/formatter/type_parse_include_spec.rb
220
+ - spec/formatter/type_partial_code_spec.rb
221
+ - spec/formatter/type_raw_include_spec.rb
222
+ - spec/formatter/type_source_block_spec.rb
223
+ - spec/formatter/type_table_spec.rb
224
+ - spec/formatter/type_text_spec.rb
225
+ - spec/formatter/type_title_spec.rb
226
+ - spec/formatter/type_warn_spec.rb
210
227
  - spec/scanner_spec.rb
211
228
  - spec/spec_helper.rb
212
229
  - spec/text_helper_spec.rb
213
- - spec/type/element_alert_spec.rb
214
- - spec/type/element_include_spec.rb
215
- - spec/type/element_md_header_spec.rb
216
- - spec/type/element_md_title_spec.rb
217
- - spec/type/element_method_spec.rb
218
- - spec/type/element_partial_code_spec.rb
219
- - spec/type/element_reject_spec.rb
220
- - spec/type/element_source_block_spec.rb
221
- - spec/type/element_table_spec.rb
222
- - spec/type/element_text_spec.rb
223
- - spec/type/element_title_spec.rb
224
- - spec/type/element_warn_spec.rb
225
- - spec/type/sample.yml
226
230
  homepage: https://github.com/akicho8/source2md
227
231
  licenses:
228
232
  - MIT
@@ -248,19 +252,20 @@ specification_version: 4
248
252
  summary: Markdown generator from source code
249
253
  test_files:
250
254
  - spec/code_block_spec.rb
255
+ - spec/formatter/sample.yml
256
+ - spec/formatter/type_alert_spec.rb
257
+ - spec/formatter/type_code_include_spec.rb
258
+ - spec/formatter/type_hidden_spec.rb
259
+ - spec/formatter/type_md_title_spec.rb
260
+ - spec/formatter/type_method_spec.rb
261
+ - spec/formatter/type_parse_include_spec.rb
262
+ - spec/formatter/type_partial_code_spec.rb
263
+ - spec/formatter/type_raw_include_spec.rb
264
+ - spec/formatter/type_source_block_spec.rb
265
+ - spec/formatter/type_table_spec.rb
266
+ - spec/formatter/type_text_spec.rb
267
+ - spec/formatter/type_title_spec.rb
268
+ - spec/formatter/type_warn_spec.rb
251
269
  - spec/scanner_spec.rb
252
270
  - spec/spec_helper.rb
253
271
  - spec/text_helper_spec.rb
254
- - spec/type/element_alert_spec.rb
255
- - spec/type/element_include_spec.rb
256
- - spec/type/element_md_header_spec.rb
257
- - spec/type/element_md_title_spec.rb
258
- - spec/type/element_method_spec.rb
259
- - spec/type/element_partial_code_spec.rb
260
- - spec/type/element_reject_spec.rb
261
- - spec/type/element_source_block_spec.rb
262
- - spec/type/element_table_spec.rb
263
- - spec/type/element_text_spec.rb
264
- - spec/type/element_title_spec.rb
265
- - spec/type/element_warn_spec.rb
266
- - spec/type/sample.yml
data/doc/0180_text.rb DELETED
@@ -1,15 +0,0 @@
1
- require "./setup"
2
-
3
- ### Text ###
4
-
5
- # If no rule applies and the text begins with `#`, remove the `#`.
6
-
7
- #+BEGIN_SRC
8
- puts Source2MD::Section.new(<<~EOS).to_md
9
- # Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
10
- # Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
11
- EOS
12
- #+END_SRC
13
-
14
- # > Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
15
- # > Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
data/doc/0190_raw.rb DELETED
@@ -1,19 +0,0 @@
1
- require "./setup"
2
-
3
- ### Raw Text ###
4
-
5
- # Same rule as when writing text, simply remove the leading `#`.
6
-
7
- #+BEGIN_SRC
8
- puts Source2MD::Section.new(<<~EOS).to_md
9
- # <hr>
10
- #
11
- # <hr>
12
- EOS
13
- #+END_SRC
14
-
15
- # > ```
16
- # > <hr>
17
- # >
18
- # > <hr>
19
- # > ```
@@ -1,20 +0,0 @@
1
- require "./setup"
2
-
3
- puts Source2MD::Element.new(<<~EOS).to_md
4
-
5
- #+include: input.yml
6
- #+name:
7
-
8
- EOS
9
- # ~> /Users/ikeda/src/source2md/lib/source2md/type/element_include.rb:27:in `read': No such file or directory @ rb_sysopen - /Users/ikeda/src/source2md/examples/input.yml diff xxx:yyy (Errno::ENOENT)
10
- # ~> from /Users/ikeda/src/source2md/lib/source2md/type/element_include.rb:27:in `read'
11
- # ~> from /Users/ikeda/src/source2md/lib/source2md/type/element_include.rb:27:in `body'
12
- # ~> from /Users/ikeda/src/source2md/lib/source2md/type/element_include.rb:17:in `to_md'
13
- # ~> from /Users/ikeda/src/source2md/lib/source2md/type/base.rb:25:in `block in initialize'
14
- # ~> from /opt/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-7.0.6/lib/active_support/logger_thread_safe_level.rb:58:in `add'
15
- # ~> from /opt/rbenv/versions/3.2.2/lib/ruby/3.2.0/logger.rb:689:in `debug'
16
- # ~> from /Users/ikeda/src/source2md/lib/source2md/type/base.rb:13:in `initialize'
17
- # ~> from /Users/ikeda/src/source2md/lib/source2md/type/element_include.rb:9:in `initialize'
18
- # ~> from /Users/ikeda/src/source2md/lib/source2md/element.rb:27:in `new'
19
- # ~> from /Users/ikeda/src/source2md/lib/source2md/element.rb:27:in `to_md'
20
- # ~> from -:3:in `<main>'
@@ -1,17 +0,0 @@
1
- require "./setup"
2
-
3
- puts Source2MD::Element.new(<<~EOS).to_md
4
- require "setup"
5
- EOS
6
- # >> --------------------------------------------------------------------------------
7
- # >> Source2MD::Type::ElementReject
8
- # >>
9
- # >> head:
10
- # >> {}
11
- # >>
12
- # >> in:
13
- # >> require "setup"
14
- # >>
15
- # >> out:
16
- # >> --------------------------------------------------------------------------------
17
- # >>
@@ -1,19 +0,0 @@
1
- module Source2MD
2
- module Type
3
- class ElementDeepComment < Base
4
- def self.accept?(element)
5
- element.body.match?(/^##/)
6
- end
7
-
8
- def to_md
9
- CodeBlock.new(body).to_md
10
- end
11
-
12
- private
13
-
14
- def body
15
- element.body.gsub(/^##/, "#")
16
- end
17
- end
18
- end
19
- end
@@ -1,13 +0,0 @@
1
- module Source2MD
2
- module Type
3
- class ElementMdHeader < Base
4
- def self.accept?(element)
5
- element.body.to_s.start_with?("---")
6
- end
7
-
8
- def to_md
9
- element.body
10
- end
11
- end
12
- end
13
- end
@@ -1,24 +0,0 @@
1
- module Source2MD
2
- module Type
3
- class ElementMethod < Base
4
- def self.accept?(element)
5
- element.head[:name]
6
- end
7
-
8
- def to_md
9
- [
10
- "### #{element.head[:name]} ###",
11
- element.head[:desc],
12
- body ? CodeBlock.new(body).to_md : nil,
13
- element.head[:comment],
14
- ].compact * "\n\n"
15
- end
16
-
17
- private
18
-
19
- def body
20
- element.body.gsub(/^\#$/, "").presence
21
- end
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- module Source2MD
2
- module Type
3
- class ElementUncomment < Base
4
- REGEXP = /^#( |$)/
5
-
6
- def self.accept?(element)
7
- if element.head.empty?
8
- # "# xxx\n" or "#\n"
9
- element.body.lines.all? { |e| e.match?(REGEXP) }
10
- end
11
- end
12
-
13
- def to_md
14
- body
15
- end
16
-
17
- private
18
-
19
- def body
20
- element.body.remove(REGEXP)
21
- end
22
- end
23
- end
24
- end
data/spec/type/sample.yml DELETED
@@ -1 +0,0 @@
1
- yaml content