markdown_helper 2.5.2 → 2.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa03a64373ee4630aad5ec0a3ce8d42597b53c23179ecfb05c159382cdca125a
4
- data.tar.gz: f84f08d3021da11b6f2d0757794eb46198b8a40243671b34b2f13ce931013526
3
+ metadata.gz: 6d2db5445cf4ffb89620cb25b2398039a51e220998daf5faee18460f28cba80b
4
+ data.tar.gz: f29c591a7476c98a129848adfb8ee8c5d6279bf562353632d37a43386da99f77
5
5
  SHA512:
6
- metadata.gz: d73cc10c181eebabe05a20cf935f5063304b2b6fc66afe31e48975e05366494141a159455cf159c97a91326b773f417ce80af408057798fc34cfe7fe4116f1a6
7
- data.tar.gz: 173d97ed8df7fc42cab0706e002a2a7f39c5637fdb9f25c5516eb89599148a7923285decdabb4d9f38e38888e568aa28d39b31d30ed61d603055971b3827533a
6
+ metadata.gz: 53b52f9a2024ead671a40bf521ba8a6be0b436477bcbbb599c588e45c29932cca9dacea2a9d232ad2c111240999913aa5eb04828d95b71465ac9138b8e67eab9
7
+ data.tar.gz: ca38ee5472ed9b6425bd8ccd87c49a45623b6de0dcb1661bfffeb2ef14dd4e41c6b22349bcee4432af66d961e0695fef8217b3d49fffe3ff43db2b8247eaa5b1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- markdown_helper (2.5.2)
4
+ markdown_helper (2.5.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -2,10 +2,13 @@ require 'tmpdir'
2
2
 
3
3
  class MarkdownIrbRunner < MarkdownHelper
4
4
 
5
- IrbFilterPragma = '```#run_irb'
6
- BeginTextDirective = "=begin #{IrbFilterPragma}"
7
- EndTextDirective = "=end #{IrbFilterPragma}"
5
+ CommentPrefix = '#run_irb '
8
6
 
7
+ ##
8
+ # Run Ruby Interactive Shell (irb) for each embedded snippet
9
+ # that begins with '```#run_irb' and end with '```'.
10
+ # The irb output replaces the entire sequence,
11
+ # and is preceded by '```ruby' and followed by '```'.
9
12
  def run_irb(template_file_path, markdown_file_path)
10
13
  irb_input = make_irb_input(template_file_path)
11
14
  irb_output = make_irb_output(irb_input)
@@ -13,50 +16,58 @@ class MarkdownIrbRunner < MarkdownHelper
13
16
  File.write(markdown_file_path, markdown)
14
17
  end
15
18
 
19
+ ##
20
+ # Comment out all lines except the irb snippets.
16
21
  def make_irb_input(template_file_path)
17
22
  irb_lines = []
18
- irb_lines.push(BeginTextDirective)
23
+ in_irb_block = false
19
24
  source_lines = File.readlines(template_file_path)
20
25
  source_lines.each do |source_line|
21
26
  source_line.chomp!
22
- if source_line == IrbFilterPragma
23
- irb_lines.push(EndTextDirective)
27
+ if source_line == '```#run_irb'
28
+ # Begin irb snippet; put commented-out markdown pragma.
29
+ in_irb_block = true
30
+ irb_lines.push(CommentPrefix + '```ruby')
24
31
  elsif source_line == '```'
25
- irb_lines.push(BeginTextDirective)
32
+ # End irb snippet; put commented-out markdown pragma.
33
+ in_irb_block = false
34
+ irb_lines.push(CommentPrefix + '```')
26
35
  else
27
- irb_lines.push(source_line)
36
+ if in_irb_block
37
+ irb_lines.push(source_line)
38
+ else
39
+ irb_lines.push(CommentPrefix + source_line)
40
+ end
28
41
  end
29
42
  end
30
- irb_lines.push(EndTextDirective)
31
43
  irb_lines.push('') unless irb_lines.last.empty?
32
44
  irb_lines.join("\n")
33
45
  end
34
46
 
47
+ ##
48
+ # Run irb over the prepared file.
35
49
  def make_irb_output(irb_input)
36
50
  Dir.mktmpdir do |dir|
37
51
  Dir.chdir(dir) do
38
52
  File.write('irb_input', irb_input)
39
- command = 'irb --noecho --noprompt irb_input | tail +2 | head --lines=-2 > irb_output'
40
- system(command )
53
+ command = 'irb --noecho --noprompt irb_input > irb_output'
54
+ system(command)
41
55
  File.read('irb_output')
42
56
  end
43
57
  end
44
58
  end
45
59
 
60
+ ##
61
+ # Uncomment the text.
46
62
  def make_markdown(irb_output)
47
63
  output_lines = []
48
64
  irb_lines = irb_output.split("\n")
49
65
  irb_lines.each_with_index do |irb_line, i|
50
66
  irb_line.chomp!
51
- if irb_line == BeginTextDirective
52
- output_lines.push('```') unless i == 0
53
- next
54
- end
55
- if irb_line == EndTextDirective
56
- output_lines.push('```ruby') unless i == irb_lines.size - 1
57
- next
58
- end
59
- output_lines.push(irb_line)
67
+ next if (i == 0) && (irb_line == 'Switch to inspect mode.')
68
+
69
+ output_line = irb_line.sub(CommentPrefix, '')
70
+ output_lines.push(output_line)
60
71
  end
61
72
  output_lines.push('') unless output_lines.last.nil? || output_lines.last.empty?
62
73
  output_lines.join("\n")
@@ -1,3 +1,3 @@
1
1
  class MarkdownHelper
2
- VERSION = '2.5.2'
2
+ VERSION = '2.5.3'
3
3
  end
@@ -36,7 +36,7 @@ EOT
36
36
  spec.require_paths = ['lib']
37
37
 
38
38
  spec.add_development_dependency 'bundler', '~> 1.14'
39
- spec.add_development_dependency 'rake', '~> 10.0'
39
+ spec.add_development_dependency 'rake', '~> 12.3.2'
40
40
  spec.add_development_dependency 'minitest', '~> 5.0'
41
41
  spec.add_development_dependency 'diff-lcs', '~> 1.3'
42
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdown_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.2
4
+ version: 2.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - burdettelamar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-12 00:00:00.000000000 Z
11
+ date: 2020-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 12.3.2
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 12.3.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -212,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
212
  - !ruby/object:Gem::Version
213
213
  version: '0'
214
214
  requirements: []
215
- rubygems_version: 3.0.3
215
+ rubygems_version: 3.1.2
216
216
  signing_key:
217
217
  specification_version: 4
218
218
  summary: Class to help with GitHub markdown.