livetext 0.9.23 → 0.9.26

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 (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