pandoc-ruby 0.2.0 → 0.3.0
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.
- data/README.markdown +8 -3
- data/VERSION +1 -1
- data/lib/pandoc-ruby.rb +16 -7
- data/pandoc-ruby.gemspec +2 -2
- data/test/test_pandoc-ruby.rb +17 -3
- metadata +2 -2
data/README.markdown
CHANGED
@@ -40,14 +40,19 @@ is equivalent to
|
|
40
40
|
|
41
41
|
pandoc -s -f markdown --to=rst --no-wrap --table-of-contents /some/file.html
|
42
42
|
|
43
|
-
Also provided are `#to_[writer]` instance methods for each of the writers:
|
43
|
+
Also provided are `#to_[writer]` instance methods for each of the writers, and these can also accept options:
|
44
44
|
|
45
|
-
PandocRuby.new("# Some title").to_html
|
46
|
-
=> "<div id=\"some-title\"
|
45
|
+
PandocRuby.new("# Some title").to_html(:no_wrap)
|
46
|
+
=> "<div id=\"some-title\"><h1>Some title</h1></div>"
|
47
47
|
# or
|
48
48
|
PandocRuby.new("# Some title").to_rtf
|
49
49
|
=> "{\\pard \\ql \\f0 \\sa180 \\li0 \\fi0 \\b \\fs36 Some title\\par}"
|
50
50
|
|
51
|
+
Similarly, there are class methods for each of the readers, so readers and writers can be specified like this:
|
52
|
+
|
53
|
+
PandocRuby.html("<h1>hello</h1>").to_latex
|
54
|
+
=> "\\section{hello}"
|
55
|
+
|
51
56
|
PandocRuby assumes the pandoc executables are in the path. If not, set their location
|
52
57
|
with `PandocRuby.bin_path = '/path/to/bin'`
|
53
58
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/pandoc-ruby.rb
CHANGED
@@ -46,16 +46,25 @@ class PandocRuby
|
|
46
46
|
@options = args
|
47
47
|
end
|
48
48
|
|
49
|
-
def convert
|
49
|
+
def convert(*args)
|
50
50
|
executable = @@bin_path ? File.join(@@bin_path, @executable) : @executable
|
51
|
-
execute executable + convert_options
|
51
|
+
execute executable + convert_options(args)
|
52
52
|
end
|
53
53
|
alias_method :to_s, :convert
|
54
54
|
|
55
|
+
class << self
|
56
|
+
READERS.each_key do |r|
|
57
|
+
define_method(r) do |*args|
|
58
|
+
args += [{:from => r}]
|
59
|
+
new(*args)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
55
64
|
WRITERS.each_key do |w|
|
56
|
-
define_method(:"to_#{w}") do
|
57
|
-
|
58
|
-
convert
|
65
|
+
define_method(:"to_#{w}") do |*args|
|
66
|
+
args += [{:to => w.to_sym}]
|
67
|
+
convert(*args)
|
59
68
|
end
|
60
69
|
end
|
61
70
|
|
@@ -71,8 +80,8 @@ private
|
|
71
80
|
output
|
72
81
|
end
|
73
82
|
|
74
|
-
def convert_options
|
75
|
-
@options.inject('') do |string, opt|
|
83
|
+
def convert_options(opts = [])
|
84
|
+
(@options + opts).flatten.inject('') do |string, opt|
|
76
85
|
string + if opt.respond_to?(:each_pair)
|
77
86
|
convert_opts_with_args(opt)
|
78
87
|
else
|
data/pandoc-ruby.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{pandoc-ruby}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["William Melody"]
|
12
|
-
s.date = %q{2009-11-
|
12
|
+
s.date = %q{2009-11-20}
|
13
13
|
s.description = %q{Ruby wrapper for Pandoc}
|
14
14
|
s.email = %q{wmelody@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/test/test_pandoc-ruby.rb
CHANGED
@@ -36,12 +36,18 @@ class TestPandocRuby < Test::Unit::TestCase
|
|
36
36
|
assert converter.convert
|
37
37
|
end
|
38
38
|
|
39
|
-
should "accept a variety of options" do
|
39
|
+
should "accept a variety of options in initializer" do
|
40
40
|
converter = PandocRuby.new(@file, :s, {:f => :markdown, :to => :rst}, 'no-wrap')
|
41
41
|
converter.expects(:execute).with('pandoc -s -f markdown --to=rst --no-wrap').returns(true)
|
42
42
|
assert converter.convert
|
43
43
|
end
|
44
44
|
|
45
|
+
should "accept a variety of options in convert" do
|
46
|
+
converter = PandocRuby.new(@file)
|
47
|
+
converter.expects(:execute).with('pandoc -s -f markdown --to=rst --no-wrap').returns(true)
|
48
|
+
assert converter.convert(:s, {:f => :markdown, :to => :rst}, 'no-wrap')
|
49
|
+
end
|
50
|
+
|
45
51
|
should "convert underscore symbol ares to hyphenated long options" do
|
46
52
|
converter = PandocRuby.new(@file, {:email_obfuscation => :javascript}, :table_of_contents)
|
47
53
|
converter.expects(:execute).with('pandoc --email-obfuscation=javascript --table-of-contents').returns(true)
|
@@ -60,11 +66,19 @@ class TestPandocRuby < Test::Unit::TestCase
|
|
60
66
|
assert converter.convert
|
61
67
|
end
|
62
68
|
|
69
|
+
PandocRuby::READERS.each_key do |r|
|
70
|
+
should "convert from #{r} with PandocRuby.#{r}" do
|
71
|
+
converter = PandocRuby.send(r, @file)
|
72
|
+
converter.expects(:execute).with("pandoc --from=#{r}").returns(true)
|
73
|
+
assert converter.convert
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
63
77
|
PandocRuby::WRITERS.each_key do |w|
|
64
78
|
should "convert to #{w} with to_#{w}" do
|
65
79
|
converter = PandocRuby.new(@file)
|
66
|
-
converter.expects(:execute).with("pandoc --to=#{w}").returns(true)
|
67
|
-
assert converter.send("to_#{w}")
|
80
|
+
converter.expects(:execute).with("pandoc --no-wrap --to=#{w}").returns(true)
|
81
|
+
assert converter.send("to_#{w}", :no_wrap)
|
68
82
|
end
|
69
83
|
end
|
70
84
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pandoc-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Melody
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-20 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|