livetext 0.9.35 → 0.9.36

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb4392b3c99d41bf20385de2f5cbb25846fb9193ab303072075d0baf904912d2
4
- data.tar.gz: b7fb45dd41a63f9c2cf39afa6e8973f53a8828c1063a341ad8ecd78eb4468f96
3
+ metadata.gz: 2dceb322a5f44e776bab9ed9113c7c7a4adf29eff271be81a613c72a081a2d51
4
+ data.tar.gz: 70576d3a39fccbe7f3285ddca930f79400b8d770ef600d043e2b3690f173ba23
5
5
  SHA512:
6
- metadata.gz: 06e2d46af57bb812baecb5afcc30147abc862df4c4a0619f0151b3b2e6db3c78d7ef7f05eb8cab1e388a7efd73d7ca67ac2143fb5fb901f0b5abcf233b9dcb86
7
- data.tar.gz: 0575eaf1bcf527c19ba6ea7ecf7d28b36c6f4dab8b4b81a57185bb9454452af4127bf60dea9a8d15039f29a7919ad7930a99e8aacf6f74ad4f55554bb9ade072
6
+ metadata.gz: 8d91e26a1721ce60ca41ff49a323df2e4ef0a365b0b4eec9b224cbef8381e48b6ab4f3c0bb63e74ada905efb101c69a33e021f521420abe56927b16a46e02091
7
+ data.tar.gz: fa718856dcbb75bb4f60f49f31638041158b815335ba9df3680c2ca0b117a2584d66921e06dae30b266f3104a465f826904a797e3e1a546960d75d6dc79d9d4b
data/bin/livetext CHANGED
@@ -93,8 +93,8 @@ def parse_command_line
93
93
  end
94
94
  end
95
95
  @live.dump if success
96
- # rescue => err
97
- # STDERR.puts "Unexpected error! #{err.inspect}"
96
+ rescue => err
97
+ STDERR.puts "Unexpected error! #{err.inspect}\n#{err.backtrace.join("\n")}"
98
98
  end
99
99
 
100
100
  # Main
@@ -2,6 +2,7 @@
2
2
  require_relative 'global_helpers'
3
3
  require_relative 'expansion'
4
4
 
5
+
5
6
  module Livetext::Helpers
6
7
 
7
8
  Space = " "
@@ -98,13 +99,16 @@ module Livetext::Helpers
98
99
  when Comment
99
100
  success = handle_scomment(line)
100
101
  when DotCmd
101
- success = handle_dotcmd(line)
102
+ success = handle_dotcmd(line) # was 102
102
103
  when DollarDot
103
104
  success = handle_dollar_dot(line)
104
105
  else
105
106
  api.passthru(line) # must succeed?
106
107
  end
107
108
  success
109
+ rescue => err
110
+ STDERR.puts "ERROR: #{err}\n#{err.backtrace.join("\n")}"
111
+ exit
108
112
  end
109
113
 
110
114
  def handle_dollar_dot(line)
@@ -120,7 +124,7 @@ module Livetext::Helpers
120
124
  api.data = data0.dup # should permit _ in function names at least
121
125
  args0 = data0.split
122
126
  api.args = args0.dup
123
- retval = @main.send(name) # , *args)
127
+ retval = @main.send(name) # , *args) # was 125
124
128
  retval
125
129
  rescue => err
126
130
  graceful_error(err)
@@ -135,7 +139,7 @@ module Livetext::Helpers
135
139
  when name == :end # special case
136
140
  graceful_error EndWithoutOpening()
137
141
  when @main.respond_to?(name)
138
- success = invoke_dotcmd(name, data)
142
+ success = invoke_dotcmd(name, data) # was 141
139
143
  else
140
144
  graceful_error UnknownMethod(name)
141
145
  end
@@ -250,3 +254,9 @@ module Livetext::Helpers
250
254
  end
251
255
 
252
256
  end
257
+
258
+ =begin
259
+ /Users/Hal/.rvm/gems/ruby-2.7.0/gems/livetext-0.9.35/lib/livetext/helpers.rb:125:in `invoke_dotcmd'
260
+ /Users/Hal/.rvm/gems/ruby-2.7.0/gems/livetext-0.9.35/lib/livetext/helpers.rb:141:in `handle_dotcmd'
261
+ /Users/Hal/.rvm/gems/ruby-2.7.0/gems/livetext-0.9.35/lib/livetext/helpers.rb:102:in `process_line'
262
+ =end
@@ -117,9 +117,10 @@ module Livetext::Standard
117
117
  api.optional_blank_line
118
118
  end
119
119
 
120
- def say
121
- str = api.format(api.data)
122
- TTY.puts str
120
+ def say(arg=nil)
121
+ data = arg || api.args.join(" ")
122
+ str = api.format(data)
123
+ TTY.puts "(say) #{str}"
123
124
  api.optional_blank_line
124
125
  end
125
126
 
@@ -281,7 +282,7 @@ module Livetext::Standard
281
282
  end
282
283
 
283
284
  def debug
284
- self.debug = onoff(api.args.first)
285
+ @debug = onoff(api.args.first)
285
286
  api.optional_blank_line
286
287
  end
287
288
 
@@ -2,5 +2,5 @@
2
2
  # Defining VERSION
3
3
 
4
4
  class Livetext
5
- VERSION = "0.9.35"
5
+ VERSION = "0.9.36"
6
6
  end
data/plugin/pyggish.rb CHANGED
@@ -82,14 +82,26 @@ def self.pyg_finalize(code, lexer=:elixir)
82
82
  result
83
83
  end
84
84
 
85
- def fragment
85
+ def fragment(args = nil, body = nil)
86
86
  lang = api.args.empty? ? :elixir : api.args.first.to_sym # ruby or elixir
87
87
  api.args = []
88
- # TTY.puts "\n#{self.inspect}"
89
- send(lang)
88
+ lines = api.body(true) # .to_a # raw
89
+ result = send(lang, lines)
90
+ api.out result
90
91
  api.out "\n"
92
+ api.optional_blank_line
93
+ rescue => err
94
+ STDERR.puts "fragment Error: #{__method__} err = #{err}\n#{err.backtrace.join("\n")}"
91
95
  end
92
96
 
97
+ def dammit(args = nil, body = nil)
98
+ lines = api.body(true)
99
+ api.out "BODY:"
100
+ lines.each {|x| api.out x }
101
+ api.out "END BODY"
102
+ api.optional_blank_line
103
+ end
104
+
93
105
  def code # FIXME ?
94
106
  text = ""
95
107
  api.body {|line| api.out " " + line }
@@ -145,8 +157,9 @@ def self.pyg_finalize(code, lexer=:elixir)
145
157
  text
146
158
  end
147
159
 
148
- def ruby
160
+ def xruby
149
161
  file = api.args.first
162
+ code = nil
150
163
  if file.nil?
151
164
  code = " # Ruby code\n\n"
152
165
  api.body {|line| code << " " + line + "\n" }
@@ -158,15 +171,76 @@ def self.pyg_finalize(code, lexer=:elixir)
158
171
  api.out html
159
172
  end
160
173
 
161
- def elixir
174
+ def xelixir
162
175
  file = api.args.first
176
+ code = nil
163
177
  if file.nil?
164
178
  code = ""
165
179
  api.body {|line| code << " " + line + "\n" }
166
180
  else
167
181
  code = ::File.read(file)
168
182
  end
169
-
170
183
  html = format_elixir(code)
171
184
  api.out html
185
+ end
186
+
187
+ def ruby(lines)
188
+ theme = :Github # default
189
+ source = lines.join("\n")
190
+ formatter = Rouge::Formatters::HTML.new
191
+ lexer = Rouge::Lexers::Ruby.new
192
+ body = formatter.format(lexer.lex(source))
193
+
194
+ # css = Rouge::Themes.const_get(theme.to_s).render(scope: '.highlight')
195
+ # added = ".highlight { font-family: courier; white-space: pre }"
196
+
197
+ result = <<~HTML
198
+ <div class="highlight">
199
+ #{body}
200
+ </div>
201
+ <br>
202
+ HTML
203
+ return result
204
+
205
+ iheight = lines.size * 25
206
+ api.out <<~HTML
207
+ <center>
208
+ <iframe width=90% height=#{iheight} src='#{File.basename(html_file)}'></iframe>
209
+ </center>
210
+ <br>
211
+ HTML
212
+ rescue => err
213
+ STDERR.puts "Error: #{__method__} err = #{err}\n#{err.backtrace.join("\n")}"
172
214
  end
215
+
216
+
217
+ def elixir(lines)
218
+ theme = :Github # default
219
+ source = lines.join("\n")
220
+ formatter = Rouge::Formatters::HTML.new
221
+ lexer = Rouge::Lexers::Elixir.new
222
+ body = formatter.format(lexer.lex(source))
223
+
224
+ # css = Rouge::Themes.const_get(theme.to_s).render(scope: '.highlight')
225
+ # added = ".highlight { font-family: courier; white-space: pre }"
226
+
227
+ result = <<~HTML
228
+ <div class="highlight">
229
+ #{body}
230
+ </div>
231
+ <br>
232
+ HTML
233
+ return result
234
+
235
+ iheight = lines.size * 25
236
+ api.out <<~HTML
237
+ <center>
238
+ <iframe width=90% height=#{iheight} src='#{File.basename(html_file)}'></iframe>
239
+ </center>
240
+ <br>
241
+ HTML
242
+ rescue => err
243
+ STDERR.puts "Error: #{__method__} err = #{err}\n#{err.backtrace}"
244
+ end
245
+
246
+
data/test/unit/html.rb CHANGED
@@ -9,29 +9,27 @@ class TestingLivetext < MiniTest::Test
9
9
  # Same is probably true of the methods that are testing them.
10
10
 
11
11
  def test_wrapped
12
- cdata = "nothing much"
13
- assert_equal wrapped(cdata, :b), "<b>#{cdata}</b>"
14
- assert_equal wrapped(cdata, :b, :i), "<b><i>#{cdata}</i></b>"
15
-
16
- assert_equal wrapped(cdata, :table, :tr, :td),
17
- "<table><tr><td>#{cdata}</td></tr></table>"
12
+ live = Livetext.new
13
+ html = HTML.new(live.api)
14
+ str = "nothing much"
15
+ assert_equal html.tag(:b, cdata: str), "<b>#{str}</b>"
16
+ assert_equal html.tag(:b, :i, cdata: str), "<b><i>#{str}</i></b>"
17
+
18
+ assert_equal html.tag(:table, :tr, :td, cdata: str),
19
+ "<table><tr><td>#{str}</td></tr></table>"
18
20
  end
19
21
 
20
- def test_wrapped_bang
21
- cdata = "nothing much"
22
- assert_equal wrapped!(cdata, :td, valign: :top),
23
- "<td valign='top'>#{cdata}</td>"
24
- assert_equal wrapped!(cdata, :img, src: "foo.jpg"),
25
- "<img src='foo.jpg'>#{cdata}</img>"
26
- assert_equal wrapped!(cdata, :a, style: 'text-decoration: none',
22
+ def test_wrapped_extra
23
+ live = Livetext.new
24
+ html = HTML.new(live.api)
25
+ str = "nothing much"
26
+ assert_equal html.tag(:td, cdata: str, valign: :top),
27
+ "<td valign='top'>#{str}</td>"
28
+ assert_equal html.tag(:img, cdata: str, src: "foo.jpg"),
29
+ "<img src='foo.jpg'>#{str}</img>"
30
+ assert_equal html.tag(:a, cdata: str, style: 'text-decoration: none',
27
31
  href: 'foo.com'),
28
- "<a style='text-decoration: none' href='foo.com'>#{cdata}</a>"
29
- end
30
-
31
- def xtest_wrap
32
- # bogus!
33
- wrap(:ul) { 2.times {|i| _out i } }
34
- dump # puts @body
32
+ "<a style='text-decoration: none' href='foo.com'>#{str}</a>"
35
33
  end
36
34
 
37
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livetext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.35
4
+ version: 0.9.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-07 00:00:00.000000000 Z
11
+ date: 2023-03-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A smart text processor extensible in Ruby
14
14
  email: rubyhacker@gmail.com