livetext 0.9.23 → 0.9.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/README.lt3 +6 -6
  3. data/bin/livetext +57 -40
  4. data/imports/bookish.rb +81 -81
  5. data/imports/calibre.rb +3 -3
  6. data/imports/livemagick.rb +17 -17
  7. data/imports/markdown.rb +10 -10
  8. data/imports/pyggish.rb +13 -13
  9. data/imports/tutorial.rb +15 -15
  10. data/lib/cmdargs.rb +7 -4
  11. data/lib/{errors.rb → livetext/errors.rb} +4 -3
  12. data/lib/{formatline.rb → livetext/formatline.rb} +119 -18
  13. data/lib/livetext/funcall.rb +168 -0
  14. data/lib/{functions.rb → livetext/functions.rb} +0 -2
  15. data/lib/{global_helpers.rb → livetext/global_helpers.rb} +6 -3
  16. data/lib/{handler → livetext/handler}/import.rb +5 -9
  17. data/lib/livetext/handler/mixin.rb +33 -0
  18. data/lib/{handler.rb → livetext/handler.rb} +1 -1
  19. data/lib/{helpers.rb → livetext/helpers.rb} +78 -66
  20. data/lib/{html.rb → livetext/html.rb} +2 -3
  21. data/lib/livetext/lineparser.rb +441 -0
  22. data/lib/livetext/more.rb +158 -0
  23. data/lib/{parser → livetext/parser}/general.rb +0 -0
  24. data/lib/{parser → livetext/parser}/set.rb +0 -0
  25. data/lib/{parser → livetext/parser}/string.rb +0 -0
  26. data/lib/{parser.rb → livetext/parser.rb} +0 -3
  27. data/lib/{parsing.rb → livetext/parsing.rb} +0 -2
  28. data/lib/livetext/paths.rb +13 -0
  29. data/lib/{processor.rb → livetext/processor.rb} +18 -8
  30. data/lib/livetext/reopen.rb +12 -0
  31. data/lib/livetext/skeleton.rb +22 -0
  32. data/lib/{standard.rb → livetext/standard.rb} +150 -127
  33. data/lib/livetext/userapi.rb +170 -0
  34. data/lib/livetext/version.rb +6 -0
  35. data/lib/livetext.rb +14 -152
  36. data/plugin/bookish.rb +82 -81
  37. data/plugin/calibre.rb +3 -3
  38. data/plugin/livemagick.rb +17 -17
  39. data/plugin/markdown.rb +10 -10
  40. data/plugin/pyggish.rb +118 -118
  41. data/plugin/tutorial.rb +15 -15
  42. data/test/all.rb +6 -0
  43. data/test/snapshots/{error_inc_line_num → basic_formatting}/actual-error.txt +0 -0
  44. data/test/snapshots/basic_formatting/actual-output.txt +13 -0
  45. data/test/snapshots/basic_formatting/err-sdiff.txt +1 -0
  46. data/test/snapshots/basic_formatting/out-sdiff.txt +14 -0
  47. data/test/snapshots/def_method/expected-output.txt +2 -0
  48. data/test/snapshots/def_method/source.lt3 +4 -2
  49. data/test/snapshots/error_inc_line_num/{OUT → README.txt} +11 -8
  50. data/test/snapshots/error_inc_line_num/expected-output.txt +0 -6
  51. data/test/snapshots/error_inc_line_num/match-error.txt +1 -1
  52. data/test/snapshots/error_invalid_name/foo +5 -0
  53. data/test/snapshots/error_line_num/match-error.txt +1 -1
  54. data/test/snapshots/error_missing_end/expected-output.txt +0 -1
  55. data/test/snapshots/error_name_not_permitted/expected-output.txt +4 -0
  56. data/test/snapshots/error_name_not_permitted/match-error.txt +1 -1
  57. data/test/snapshots/error_no_such_copy/expected-output.txt +1 -0
  58. data/test/snapshots/error_no_such_mixin/expected-output.txt +1 -0
  59. data/test/snapshots/error_no_such_mixin/match-error.txt +1 -1
  60. data/test/snapshots/error_no_such_mixin/source.lt3 +1 -1
  61. data/test/snapshots/example_alpha/source.lt3 +2 -2
  62. data/test/snapshots/example_alpha2/expected-output.txt +0 -2
  63. data/test/snapshots/example_alpha2/source.lt3 +5 -4
  64. data/test/snapshots/import/expected-output.txt +2 -1
  65. data/test/snapshots/import/match-error.txt +1 -1
  66. data/test/snapshots/import/simple_import.rb +1 -1
  67. data/test/snapshots/import2/simple_import.rb +1 -1
  68. data/test/snapshots/import_bookish/expected-output.txt +4 -4
  69. data/test/snapshots/{error_invalid_name/actual-output.txt → more_functions/actual-error.txt} +0 -0
  70. data/test/snapshots/more_functions/actual-output.txt +37 -0
  71. data/test/snapshots/more_functions/err-sdiff.txt +1 -0
  72. data/test/snapshots/more_functions/expected-output.txt +1 -1
  73. data/test/snapshots/more_functions/out-sdiff.txt +38 -0
  74. data/test/snapshots/more_functions/source.lt3 +1 -1
  75. data/test/snapshots/raw_lines/expected-output.txt +0 -2
  76. data/test/snapshots/simple_import/simple_import.rb +1 -1
  77. data/test/snapshots/simple_mixin/simple_mixin.rb +1 -1
  78. data/test/snapshots/{error_missing_end/actual-output.txt → simple_vars/actual-error.txt} +0 -0
  79. data/test/snapshots/simple_vars/actual-output.txt +6 -0
  80. data/test/snapshots/simple_vars/err-sdiff.txt +1 -0
  81. data/test/snapshots/simple_vars/out-sdiff.txt +7 -0
  82. data/test/snapshots/single_raw_line/expected-output.txt +0 -2
  83. data/test/snapshots/subset.txt +9 -7
  84. data/test/snapshots/{error_no_such_copy/actual-output.txt → var_into_func/actual-error.txt} +0 -0
  85. data/test/snapshots/var_into_func/actual-output.txt +16 -0
  86. data/test/snapshots/var_into_func/err-sdiff.txt +1 -0
  87. data/test/snapshots/{error_no_such_inc/actual-output.txt → var_into_func/expected-error.txt} +0 -0
  88. data/test/snapshots/var_into_func/expected-output.txt +16 -0
  89. data/test/snapshots/var_into_func/out-sdiff.txt +17 -0
  90. data/test/snapshots/var_into_func/source.lt3 +16 -0
  91. data/test/snapshots.rb +16 -7
  92. data/test/unit/all.rb +3 -1
  93. data/test/unit/formatline.rb +145 -276
  94. data/test/unit/html.rb +1 -2
  95. data/test/unit/lineparser.rb +650 -0
  96. data/test/unit/parser/set.rb +13 -12
  97. data/test/unit/standard.rb +0 -1
  98. data/test/unit/tokenizer.rb +534 -0
  99. metadata +49 -39
  100. data/lib/funcall.rb +0 -93
  101. data/lib/parser/file.rb +0 -6
  102. data/lib/parser/mixin.rb +0 -34
  103. data/lib/userapi.rb +0 -164
  104. data/test/snapshots/error_inc_line_num/actual-output.txt +0 -17
  105. data/test/snapshots/error_invalid_name/actual-error.txt +0 -10
  106. data/test/snapshots/error_invalid_name/out-sdiff.txt +0 -6
  107. data/test/snapshots/error_missing_end/actual-error.txt +0 -10
  108. data/test/snapshots/error_missing_end/out-sdiff.txt +0 -6
  109. data/test/snapshots/error_no_such_copy/actual-error.txt +0 -10
  110. data/test/snapshots/error_no_such_copy/out-sdiff.txt +0 -5
  111. data/test/snapshots/error_no_such_inc/actual-error.txt +0 -10
  112. data/test/snapshots/error_no_such_inc/out-sdiff.txt +0 -6
  113. data/test/snapshots/error_no_such_mixin/actual-error.txt +0 -13
  114. data/test/snapshots/error_no_such_mixin/actual-output.txt +0 -0
  115. data/test/snapshots/error_no_such_mixin/out-sdiff.txt +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b1fc83442ee9361739a1d0024eebcaa342b3d75242824d0127644a03c2a6d12
4
- data.tar.gz: c6bb5f661e43f438b65f40d4cb3b7f71a7ebb8a87951d6c157f932d418c0ea4a
3
+ metadata.gz: 1744d4ccec6a1c997c1f37660276d9bbd13bc458b612e00ff90de5f0eab93261
4
+ data.tar.gz: 0ce2af2ed7e189f8128a94c93468f9044fdef6a044c4e551655ece97b6eaa3da
5
5
  SHA512:
6
- metadata.gz: 17ac68b8a91831199d1e6effaca85add11311251cbf6388214219768ebba937198cebc6fe314bed95d8b5c8ddabf86672601be274fbfe26601a6622c899049e6
7
- data.tar.gz: cce50c49518fc8440ba7295d9d7bd6d711307115106b8f707d3b2f7a2f38a470b6a21f0dfa4ca2345329621e9c400dab9ea7758b4ad68cf345201dea2fcc970c
6
+ metadata.gz: 497f2e381f4ee255dc2b336fb6f287e136858e4d8daf96e6f652c321013d68e13139f41507e532bb1a57dd85b41afd6e8b5b6a35ce8f9cbb2b5b38eb7ccbde51
7
+ data.tar.gz: c5fcb435da4ee42395872a91f27ed5f2a1f67273f70b7e7bfdafe781b90a3170203bae9536ffd9dfb0e9af14e3cd0fde7a543c17e9aecdea1983fb4be8d74fd9
data/README.lt3 CHANGED
@@ -186,7 +186,7 @@ the text. Here's an example.
186
186
 
187
187
  . This is also a comment, by the way.
188
188
  .def chapter
189
- params = _args
189
+ params = api.args
190
190
  raise "chapter: expecting at least two args" unless params.size > 1
191
191
  num, *title = params # Chapter number + title
192
192
  title = title.join(" ") # Join all words into one string
@@ -195,7 +195,7 @@ the text. Here's an example.
195
195
  <h2>#{title}</h2>
196
196
  <hr>
197
197
  HTML
198
- _puts text
198
+ api.puts text
199
199
  .end
200
200
  . Now let's invoke it...
201
201
  .chapter 1 Why I Went to the Woods
@@ -270,16 +270,16 @@ in here (and nothing else).
270
270
  # File: mylib.rb
271
271
 
272
272
  def alpha
273
- cols = _args.first
273
+ cols = api.args.first
274
274
  cols = "1" if cols == ""
275
275
  cols = cols.to_i
276
276
  raise "Columns must be 1-5" unless cols.between?(1,5)
277
- text = _body.join
277
+ text = api.body.join
278
278
  text.gsub!(/\n/, " ")
279
279
  words = text.split.sort
280
280
  words.each_slice(cols) do |row|
281
- row.each {|w| _print '%-15s' % w }
282
- _puts
281
+ row.each {|w| api.print '%-15s' % w }
282
+ api.puts
283
283
  end
284
284
  end
285
285
  .end
data/bin/livetext CHANGED
@@ -4,12 +4,8 @@ require 'rubygems'
4
4
 
5
5
  require_relative '../lib/livetext'
6
6
 
7
- def handle_lt3(src)
8
- abort "Unknown file extension" unless src =~ /.lt3$/
9
- end
10
-
11
7
  def usage
12
- puts <<-EOF
8
+ STDERR.puts <<~EOF
13
9
  Usage:
14
10
  livetext filename
15
11
 
@@ -41,50 +37,71 @@ def usage
41
37
  Install plugin:
42
38
  livetext -i filename.rb
43
39
  livetext -install filename.rb
40
+
44
41
  EOF
45
- puts
46
42
  exit
47
43
  end
48
44
 
49
- # Main
45
+ def version
46
+ puts "#{Livetext::VERSION}\n "
47
+ end
50
48
 
51
- x = Livetext.new
49
+ def testing
50
+ file = "#{Livetext::Path}/../test/test.rb"
51
+ flag = @backtrace ? "-back" : ""
52
+ cmd = "ruby #{file} cmdline#{flag}"
53
+ puts cmd
54
+ system(cmd)
55
+ end
52
56
 
53
- @backtrace = false
57
+ def mixin_flag
58
+ mod = ARGV.shift
59
+ @live.mixin(ARGV.shift)
60
+ end
61
+
62
+ def read_stdin
63
+ src = STDIN.read
64
+ @live.process(src)
65
+ end
66
+
67
+ def install_plugin
68
+ lib = ARGV.shift
69
+ system("cp #{lib} #{Livetext::Path}/../plugin/")
70
+ end
54
71
 
55
- usage if ARGV.empty?
56
-
57
- loop do
58
- arg = ARGV.shift
59
- break if arg.nil?
60
- case arg
61
- when "-v", "--version"
62
- puts "#{Livetext::VERSION}\n "
63
- when "-t", "--test"
64
- file = "#{Livetext::Path}/../test/test.rb"
65
- flag = @backtrace ? "-back" : ""
66
- cmd = "ruby #{file} cmdline#{flag}"
67
- puts cmd
68
- system(cmd)
69
- when "-p", "--path"
70
- puts Livetext::Path
71
- when "-b", "--backtrace"
72
- @backtrace = true
72
+ def parse_command_line
73
+ usage if ARGV.empty?
74
+ success = true
75
+ loop do
76
+ arg = ARGV.shift
77
+ break if arg.nil?
78
+ case arg
79
+ when "-v", "--version"; version
80
+ when "-t", "--test"; testing
81
+ when "-p", "--path"; puts Livetext::Path
82
+ when "-b", "--backtrace"; @backtrace = true
73
83
  when "-m", "--mixin"
74
- mod = ARGV.shift
75
- x.mixin(ARGV.shift)
84
+ mixin_flag
76
85
  next
77
- when "-s", "--stdin"
78
- src = STDIN.read
79
- x.process(src)
80
- when "-h", "--help"
81
- usage
82
- when "-i", "--install"
83
- lib = ARGV.shift
84
- system("cp #{lib} #{Livetext::Path}/../plugin/")
85
- when Object
86
- x.process_file(arg, true) # , @backtrace)
86
+ when "-s", "--stdin"; read_stdin
87
+ when "-h", "--help"; usage
88
+ when "-i", "--install"; install_plugin
89
+ when Object; @live.process_file(arg, true) # , @backtrace)
90
+ else
91
+ success = false
92
+ STDERR.puts "Command line - #{arg.inspect} is unknown"
93
+ end
87
94
  end
95
+ @live.dump if success
96
+ # rescue => err
97
+ # STDERR.puts "Unexpected error! #{err.inspect}"
88
98
  end
89
99
 
90
- puts x.body
100
+ # Main
101
+
102
+ @live = Livetext.new
103
+
104
+ @backtrace = false
105
+
106
+ parse_command_line
107
+
data/imports/bookish.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Bookish
2
2
  def hardbreaks(args = nil, body = nil)
3
3
  @hard = false
4
- @hard = true unless @_args.first == "off"
4
+ @hard = true unless api.args.first == "off"
5
5
  end
6
6
 
7
7
  def hardbreaks?
@@ -14,23 +14,23 @@ module Bookish
14
14
 
15
15
  # These are duplicated. Remove safely
16
16
 
17
- def h1; _out "<h1>#{@_data}</h1>"; end
18
- def h2; _out "<h2>#{@_data}</h2>"; end
19
- def h3; _out "<h3>#{@_data}</h3>"; end
17
+ def h1; api.out "<h1>#{api.data}</h1>"; end
18
+ def h2; api.out "<h2>#{api.data}</h2>"; end
19
+ def h3; api.out "<h3>#{api.data}</h3>"; end
20
20
 
21
21
  def alpha_columns(args = nil, body = nil)
22
- n = @_args.first.to_i # FIXME: what if missing?
22
+ n = api.args.first.to_i # FIXME: what if missing?
23
23
  words = []
24
- _body do |line|
24
+ api.body do |line|
25
25
  words << line.chomp
26
26
  end
27
27
  words.sort!
28
- _out "<table cellpadding=2>"
28
+ api.out "<table cellpadding=2>"
29
29
  words.each_slice(n) do |w|
30
30
  items = w.map {|x| "<tt>#{x}</tt>" }
31
- _out "<tr><td width=5% valign=top></td><td>" + items.join("</td><td>") + "</td></tr>"
31
+ api.out "<tr><td width=5% valign=top></td><td>" + items.join("</td><td>") + "</td></tr>"
32
32
  end
33
- _out "</table>"
33
+ api.out "</table>"
34
34
  end
35
35
 
36
36
  def _errout(*args)
@@ -52,29 +52,29 @@ module Bookish
52
52
  # FIXME duplicated?
53
53
 
54
54
  def image(args = nil, body = nil)
55
- name = @_args[0]
56
- _out "<img src='#{name}'></img>"
55
+ name = api.args[0]
56
+ api.out "<img src='#{name}'></img>"
57
57
  end
58
58
 
59
59
  def figure(args = nil, body = nil)
60
- name = @_args[0]
61
- num = @_args[1]
62
- title = @_args[2..-1].join(" ")
63
- title = _format(title)
64
- _out "<img src='#{name}'></img>"
65
- _out "<center><b>Figure #{num}</b> #{title}</center>"
60
+ name = api.args[0]
61
+ num = api.args[1]
62
+ title = api.args[2..-1].join(" ")
63
+ title = api.format(title)
64
+ api.out "<img src='#{name}'></img>"
65
+ api.out "<center><b>Figure #{num}</b> #{title}</center>"
66
66
  end
67
67
 
68
68
  def chapter(args = nil, body = nil)
69
69
  # _errout("chapter")
70
- @chapter = @_args.first.to_i
70
+ @chapter = api.args.first.to_i
71
71
  @sec = @sec2 = 0
72
- title = @_data.split(" ",2)[1]
72
+ title = api.data.split(" ",2)[1]
73
73
  @toc << "<br><b>#@chapter</b> #{title}<br>"
74
- @_data = _slug(title)
74
+ api.data = _slug(title)
75
75
  next_output
76
- _out "<title>#{@chapter}. #{title}</title>"
77
- _out <<-HTML
76
+ api.out "<title>#{@chapter}. #{title}</title>"
77
+ api.out <<-HTML
78
78
  <h2>Chapter #{@chapter}</h2>
79
79
  <h1>#{title}</h1>
80
80
 
@@ -84,13 +84,13 @@ module Bookish
84
84
  def chapterN(args = nil, body = nil)
85
85
  @chapter += 1
86
86
  @sec = @sec2 = 0
87
- title = @_data # .split(" ",2)[1]
87
+ title = api.data # .split(" ",2)[1]
88
88
  _errout("Chapter #@chapter: #{title}")
89
89
  @toc << "<br><b>#@chapter</b> #{title}<br>"
90
- @_data = _slug(title)
90
+ api.data = _slug(title)
91
91
  next_output
92
- _out "<title>#{@chapter}. #{title}</title>"
93
- _out <<-HTML
92
+ api.out "<title>#{@chapter}. #{title}</title>"
93
+ api.out <<-HTML
94
94
  <h2>Chapter #{@chapter}</h2>
95
95
  <h1>#{title}</h1>
96
96
 
@@ -101,11 +101,11 @@ module Bookish
101
101
  @sec += 1
102
102
  @sec2 = 0
103
103
  @section = "#@chapter.#@sec"
104
- title = @_data.dup
104
+ title = api.data.dup
105
105
  @toc << "#{_nbsp(3)}<b>#@section</b> #{title}<br>"
106
- @_data = _slug(@_data)
106
+ api.data = _slug(api.data)
107
107
  next_output
108
- _out "<h3>#@section #{title}</h3>\n"
108
+ api.out "<h3>#@section #{title}</h3>\n"
109
109
  rescue => err
110
110
  ::STDERR.puts "#{err}\n#{err.backtrace}"
111
111
  exit
@@ -114,67 +114,66 @@ module Bookish
114
114
  def subsec(args = nil, body = nil)
115
115
  @sec2 += 1
116
116
  @subsec = "#@chapter.#@sec.#@sec2"
117
- title = @_data.dup
117
+ title = api.data.dup
118
118
  @toc << "#{_nbsp(6)}<b>#@subsec</b> #{title}<br>"
119
- @_data = _slug(@_data)
119
+ api.data = _slug(api.data)
120
120
  next_output
121
- _out "<h3>#@subsec #{title}</h3>\n"
121
+ api.out "<h3>#@subsec #{title}</h3>\n"
122
122
  end
123
123
 
124
124
  def definition_table(args = nil, body = nil)
125
- title = @_data
125
+ title = api.data
126
126
  wide = "95"
127
127
  delim = " :: "
128
- _out "<br><center><table width=#{wide}% cellpadding=5>"
129
- lines = _body(true)
130
- lines.map! {|line| _format(line) }
128
+ api.out "<br><center><table width=#{wide}% cellpadding=5>"
129
+ lines = api.body(true)
130
+ lines.map! {|line| api.format(line) }
131
131
 
132
132
  lines.each do |line|
133
133
  cells = line.split(delim)
134
- _out "<tr>"
134
+ api.out "<tr>"
135
135
  cells.each.with_index do |cell, i|
136
136
  width = (i == 0) ? "width=15%" : ""
137
- _out " <td #{width} valign=top>#{cell}</td>"
137
+ api.out " <td #{width} valign=top>#{cell}</td>"
138
138
  end
139
- _out "</tr>"
139
+ api.out "</tr>"
140
140
  end
141
- _out "</table></center><br><br>"
141
+ api.out "</table></center><br><br>"
142
142
 
143
- _optional_blank_line
143
+ api.optional_blank_line
144
144
  end
145
145
 
146
146
  def table2(args = nil, body = nil)
147
- title = @_data
147
+ title = api.data
148
148
  wide = "90"
149
- extra = _args[2]
149
+ extra = api.args[2]
150
150
  delim = " :: "
151
- _out "<br><center><table width=#{wide}% cellpadding=5>"
152
- lines = _body(true)
153
- lines.map! {|line| _format(line) }
151
+ api.out "<br><center><table width=#{wide}% cellpadding=5>"
152
+ lines = api.body(true)
153
+ lines.map! {|line| api.format(line) }
154
154
 
155
155
  lines.each do |line|
156
156
  cells = line.split(delim)
157
157
  percent = (100/cells.size.to_f).round
158
- _out "<tr>"
158
+ api.out "<tr>"
159
159
  cells.each do |cell|
160
- _out " <td width=#{percent}% valign=top " +
160
+ api.out " <td width=#{percent}% valign=top " +
161
161
  "#{extra}>#{cell}</td>"
162
162
  end
163
- _out "</tr>"
163
+ api.out "</tr>"
164
164
  end
165
- _out "</table></center><br><br>"
166
-
167
- _optional_blank_line
165
+ api.out "</table></center><br><br>"
166
+ api.optional_blank_line
168
167
  end
169
168
 
170
169
  def simple_table(args = nil, body = nil)
171
- title = @_data
170
+ title = api.data
172
171
  delim = " :: "
173
- _out "<table cellpadding=2>"
174
- lines = _body(true)
172
+ api.out "<table cellpadding=2>"
173
+ lines = api.body(true)
175
174
  maxw = nil
176
175
  lines.each do |line|
177
- _format(line)
176
+ api.format(line)
178
177
  cells = line.split(delim)
179
178
  wide = cells.map {|x| x.length }
180
179
  maxw = [0] * cells.size
@@ -186,26 +185,26 @@ module Bookish
186
185
 
187
186
  lines.each do |line|
188
187
  cells = line.split(delim)
189
- _out "<tr>"
188
+ api.out "<tr>"
190
189
  cells.each.with_index do |cell, i|
191
- _out " <td width=#{maxw}% valign=top>" +
192
- "#{cell}</td>"
190
+ api.out " <td width=#{maxw[i]}% valign=top>#{cell}</td>"
193
191
  end
194
- _out "</tr>"
192
+ api.out "</tr>"
195
193
  end
196
- _out "</table>"
194
+ api.out "</table>"
195
+ api.optional_blank_line
197
196
  end
198
197
 
199
198
  def table(args = nil, body = nil)
200
199
  @table_num ||= 0
201
200
  @table_num += 1
202
- title = @_data
201
+ title = api.data
203
202
  delim = " :: "
204
- _out "<br><center><table width=90% cellpadding=5>"
205
- lines = _body(true)
203
+ api.out "<br><center><table width=90% cellpadding=5>"
204
+ lines = api.body(true)
206
205
  maxw = nil
207
206
  lines.each do |line|
208
- _format(line)
207
+ api.format(line)
209
208
  cells = line.split(delim)
210
209
  wide = cells.map {|x| x.length }
211
210
  maxw = [0] * cells.size
@@ -217,17 +216,18 @@ module Bookish
217
216
 
218
217
  lines.each do |line|
219
218
  cells = line.split(delim)
220
- _out "<tr>"
219
+ api.out "<tr>"
221
220
  cells.each.with_index do |cell, i|
222
- _out " <td width=#{maxw}% valign=top>" +
221
+ api.out " <td width=#{maxw}% valign=top>" +
223
222
  "#{cell}</td>"
224
223
  end
225
- _out "</tr>"
224
+ api.out "</tr>"
226
225
  end
227
- _out "</table>"
226
+ api.out "</table>"
228
227
  @toc << "#{_nbsp(8)}<b>Table #@chapter.#@table_num</b> #{title}<br>"
229
228
  # _next_output(_slug("table_#{title}"))
230
- _out "<b>Table #@chapter.#@table_num &nbsp;&nbsp; #{title}</b></center><br>"
229
+ api.out "<b>Table #@chapter.#@table_num &nbsp;&nbsp; #{title}</b></center><br>"
230
+ api.optional_blank_line
231
231
  end
232
232
 
233
233
  def toc!(args = nil, body = nil)
@@ -240,7 +240,7 @@ module Bookish
240
240
  end
241
241
 
242
242
  def toc2(args = nil, body = nil)
243
- file = @_args[0]
243
+ file = api.args[0]
244
244
  @toc.close
245
245
  ::File.write(file, <<-EOS)
246
246
  <p style="page-break-after:always;"></p>
@@ -253,26 +253,26 @@ module Bookish
253
253
  end
254
254
 
255
255
  def missing(args = nil, body = nil)
256
- @toc << "#{_nbsp(8)}<font color=red>TBD: #@_data</font><br>"
257
- stuff = @_data.empty? ? "" : ": #@_data"
258
- _out "<br><font color=red><i>[Material missing#{stuff}]</i></font><br>\n "
256
+ @toc << "#{_nbsp(8)}<font color=red>TBD: #{api.data}</font><br>"
257
+ stuff = api.data.empty? ? "" : ": #{api.data}"
258
+ api.out "<br><font color=red><i>[Material missing#{stuff}]</i></font><br>\n "
259
259
  end
260
260
 
261
261
  def TBC(args = nil, body = nil)
262
262
  @toc << "#{_nbsp(8)}<font color=red>To be continued...</font><br>"
263
- _out "<br><font color=red><i>To be continued...</i></font><br>"
263
+ api.out "<br><font color=red><i>To be continued...</i></font><br>"
264
264
  end
265
265
 
266
266
  def note(args = nil, body = nil)
267
- _out "<br><font color=red><i>Note: "
268
- _out @_data
269
- _out "</i></font><br>\n "
267
+ api.out "<br><font color=red><i>Note: "
268
+ api.out api.data
269
+ api.out "</i></font><br>\n "
270
270
  end
271
271
 
272
272
  def quote(args = nil, body = nil)
273
- _out "<blockquote>"
274
- _body {|line| _out line }
275
- _out "</blockquote>"
273
+ api.out "<blockquote>"
274
+ api.body {|line| api.out line }
275
+ api.out "</blockquote>"
276
276
  rescue => err
277
277
  ::STDERR.puts "#{err}\n#{err.backtrace}"
278
278
  exit
data/imports/calibre.rb CHANGED
@@ -2,9 +2,9 @@ require 'fileutils'
2
2
 
3
3
  module Calibre
4
4
  def epub!(args = nil, body = nil)
5
- out = _format(@_args[0])
6
- src = @_args[1]
7
- @cover = @_args[2]
5
+ out = api.format(api.args[0])
6
+ src = api.args[1]
7
+ @cover = api.args[2]
8
8
  if ::File.directory?(src)
9
9
  files = ::Dir["#{src}/*"].grep /\.html$/
10
10
  files = files.sort # why is this necessary now?
@@ -4,24 +4,24 @@ module Livemagick # FIXME auto-mangle names
4
4
  include ::Magick
5
5
 
6
6
  def image(args = nil, body = nil)
7
- xx, yy, bg = _args
7
+ xx, yy, bg = api.args
8
8
  xx, yy = xx.to_i, yy.to_i
9
9
  @image = Image.new(xx,yy) { self.background_color = bg }
10
- _optional_blank_line
10
+ api.optional_blank_line
11
11
  end
12
12
 
13
13
  def canvas(args = nil, body = nil)
14
- color, width, opacity = _args
14
+ color, width, opacity = api.args
15
15
  opacity, width = opacity.to_i, width.to_i
16
16
  @canvas = Draw.new
17
17
  @canvas.fill_opacity(0)
18
18
  @canvas.stroke('black')
19
19
  @canvas.stroke_width(1)
20
- _optional_blank_line
20
+ api.optional_blank_line
21
21
  end
22
22
 
23
23
  def rectangle(args = nil, body = nil)
24
- xy, wxh, stroke_color, stroke_width = _args
24
+ xy, wxh, stroke_color, stroke_width = api.args
25
25
  x, y = xy.split(",").map(&:to_i)
26
26
  width, height = wxh.split("x").map(&:to_i)
27
27
  stroke_width = stroke_width.to_i
@@ -32,19 +32,19 @@ module Livemagick # FIXME auto-mangle names
32
32
  end
33
33
 
34
34
  def pen(args = nil, body = nil)
35
- @fill, @stroke = _args
35
+ @fill, @stroke = api.args
36
36
  @stroke = "black" if @stroke.nil? || @stroke.empty?
37
37
  _debug "pen: fill=#@fill stroke=#@stroke"
38
- _optional_blank_line
38
+ api.optional_blank_line
39
39
  end
40
40
 
41
41
  def font(args = nil, body = nil)
42
- size, font = _args
42
+ size, font = api.args
43
43
  font = "Helvetica" if font.nil? || font.empty?
44
44
  size = "32" if size.nil? || size.empty?
45
45
  @size, @font = size.to_i, font
46
46
  _debug "font: size=#@size font=#@font"
47
- _optional_blank_line
47
+ api.optional_blank_line
48
48
  end
49
49
 
50
50
  def _text(xy, wxh, str, weight, gravity)
@@ -62,34 +62,34 @@ module Livemagick # FIXME auto-mangle names
62
62
  end
63
63
 
64
64
  def text(args = nil, body = nil)
65
- xy, wxh, str = _data.split
65
+ xy, wxh, str = api.data.split
66
66
  weight, gravity = BoldWeight, CenterGravity
67
67
  _text(xy, wxh, str, weight, gravity)
68
- _optional_blank_line
68
+ api.optional_blank_line
69
69
  end
70
70
 
71
71
  def text!(args = nil, body = nil)
72
- xy, wxh = _data.split
73
- str = _body_text # .join
72
+ xy, wxh = api.data.split
73
+ str = api.body_text # .join
74
74
  weight, gravity = BoldWeight, CenterGravity
75
75
  _text(xy, wxh, str, weight, gravity)
76
- _optional_blank_line
76
+ api.optional_blank_line
77
77
  end
78
78
 
79
79
  def draw(args = nil, body = nil)
80
80
  @canvas.draw(@image)
81
- _optional_blank_line
81
+ api.optional_blank_line
82
82
  end
83
83
 
84
84
  def save(args = nil, body = nil)
85
85
  @image.write(_args.first)
86
- _optional_blank_line
86
+ api.optional_blank_line
87
87
  end
88
88
 
89
89
  def save!(args = nil, body = nil)
90
90
  save
91
91
  system("open #{_args.first}")
92
- _optional_blank_line
92
+ api.optional_blank_line
93
93
  end
94
94
  end
95
95
  =begin
data/imports/markdown.rb CHANGED
@@ -9,12 +9,12 @@ module Markdown
9
9
  SimpleFormats[:s] = %w[<strike> </strike>]
10
10
 
11
11
 
12
- def h1(args = nil, body = nil); _out "# #{Livetext.interpolate(@_data)}"; _optional_blank_line end # atx style for now
13
- def h2(args = nil, body = nil); _out "## #{Livetext.interpolate(@_data)}"; _optional_blank_line end
14
- def h3(args = nil, body = nil); _out "### #{Livetext.interpolate(@_data)}"; _optional_blank_line end
15
- def h4(args = nil, body = nil); _out "#### #{Livetext.interpolate(@_data)}"; _optional_blank_line end
16
- def h5(args = nil, body = nil); _out "##### #{Livetext.interpolate(@_data)}"; _optional_blank_line end
17
- def h6(args = nil, body = nil); _out "###### #{Livetext.interpolate(@_data)}"; _optional_blank_line end
12
+ def h1(args = nil, body = nil); api.out "# #{Livetext.interpolate(api.data)}"; api.optional_blank_line end # atx style for now
13
+ def h2(args = nil, body = nil); api.out "## #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
14
+ def h3(args = nil, body = nil); api.out "### #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
15
+ def h4(args = nil, body = nil); api.out "#### #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
16
+ def h5(args = nil, body = nil); api.out "##### #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
17
+ def h6(args = nil, body = nil); api.out "###### #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
18
18
 
19
19
  def title(args = nil, body = nil)
20
20
  h1
@@ -25,18 +25,18 @@ module Markdown
25
25
  end
26
26
 
27
27
  def bq(args = nil, body = nil) # block quote
28
- _body {|line| _out "> #{line}" }
28
+ api.body {|line| api.out "> #{line}" }
29
29
  end
30
30
 
31
31
  def list(args = nil, body = nil)
32
- _body {|line| _out " * #{line}" }
32
+ api.body {|line| api.out " * #{line}" }
33
33
  end
34
34
 
35
35
  def olist(args = nil, body = nil) # Doesn't handle paragraphs yet
36
36
  n = 0
37
- _body do |line|
37
+ api.body do |line|
38
38
  n += 1
39
- _out "#{n}. #{_format(line)}"
39
+ api.out "#{n}. #{_format(line)}"
40
40
  end
41
41
  end
42
42