literate_md 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/bin/literate_md CHANGED
@@ -4,8 +4,8 @@ require 'coderay'
4
4
  require 'redcarpet'
5
5
  require 'trollop'
6
6
  require 'fileutils'
7
-
8
- opts = Trollop::options do
7
+
8
+ opts = $opts || Trollop::options do
9
9
  opt :weave, "Produce documentation", :short => 'w'
10
10
  opt :tangle, "Produce code", :short => 't'
11
11
  opt :outputdir, "Directory to write files to", :default => Dir.pwd, :short => 'o'
@@ -76,8 +76,9 @@ class Tangle < Redcarpet::Render::Base
76
76
  (1..chunks.length-1).each{|index|
77
77
  last, this = chunks[index-1], chunks[index]
78
78
  new_snippet = code[
79
- last[:start] + last[:anchor_len],
80
- [this[:start] - this[:anchor_len], 0 ].max ]
79
+ last[:start] + last[:anchor_len], # start index
80
+ this[:start] - (last[:start] + last[:anchor_len]) # length of substr
81
+ ]
81
82
  @links[normalise(last[:anchor],lang)] << new_snippet if not new_snippet.strip.empty?
82
83
  }
83
84
  nil
@@ -0,0 +1,15 @@
1
+
2
+ int main() {
3
+
4
+ int* me = &1;
5
+ *me++;
6
+
7
+
8
+ /* MORE! MORE! */
9
+
10
+ int* me = &1;
11
+ *me++;
12
+
13
+
14
+ return 0;
15
+ }
data/test/test.md ADDED
@@ -0,0 +1,27 @@
1
+ ### my file ###
2
+ add some *text*:
3
+
4
+ ~~~~~
5
+ @*@ +=
6
+ int main() {
7
+ @Do Stuff@
8
+ @Do More Stuff@
9
+ return 0;
10
+ }
11
+ ~~~~~
12
+
13
+ and some more text. we should probably say what dostuff is; it's:
14
+
15
+ ~~~~~
16
+ @Do Stuff@ +=
17
+ int* me = &1;
18
+ *me++;
19
+ @Do More Stuff@ +=
20
+ /* MORE! MORE! */
21
+ ~~~~~
22
+
23
+ was that clearer? More stuff is the same as the first:
24
+
25
+ ~~~~
26
+ @Do More Stuff@ += @Do Stuff@
27
+ ~~~~
@@ -0,0 +1,35 @@
1
+ require 'test/unit'
2
+ require 'ostruct'
3
+
4
+ class TestLiterateMD < Test::Unit::TestCase
5
+ def test_tangle
6
+ tidy_up(actual_file = 'test/test.rb')
7
+ $opts = OpenStruct.new(
8
+ :tangle => true,
9
+ :weave => false,
10
+ :outputdir => '.',
11
+ :files => 'test/test.md',
12
+ :lang => 'ruby')
13
+ run_it
14
+ expected = File.open('test/expected_test.rb', 'r'){|f|f.read}
15
+ actual = File.open(actual_file, 'r'){|f|f.read}
16
+ assert_equal expected, actual
17
+ tidy_up actual_file
18
+ end
19
+
20
+ def test_weave
21
+ # TODO!
22
+ end
23
+
24
+ def tidy_up file
25
+ File.delete file if File.exists? file
26
+ end
27
+
28
+ def run_it
29
+ begin
30
+ load 'bin/literate_md'
31
+ rescue SystemExit => e
32
+ assert_equal e.status, 0
33
+ end
34
+ end
35
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: literate_md
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 3
10
- version: 1.0.3
9
+ - 4
10
+ version: 1.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - remis
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-03-08 00:00:00 Z
18
+ date: 2012-03-24 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: redcarpet
@@ -78,6 +78,9 @@ extensions: []
78
78
  extra_rdoc_files: []
79
79
 
80
80
  files:
81
+ - test/expected_test.rb
82
+ - test/test.md
83
+ - test/test_literate_md.rb
81
84
  - bin/literate_md
82
85
  homepage: http://remis-thoughts.blogspot.com
83
86
  licenses: []
@@ -112,5 +115,7 @@ rubygems_version: 1.8.5
112
115
  signing_key:
113
116
  specification_version: 3
114
117
  summary: Convert markdown documents into code or html
115
- test_files: []
116
-
118
+ test_files:
119
+ - test/expected_test.rb
120
+ - test/test.md
121
+ - test/test_literate_md.rb