source2md 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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