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 +4 -4
- data/bin/livetext +2 -2
- data/lib/livetext/helpers.rb +13 -3
- data/lib/livetext/standard.rb +5 -4
- data/lib/livetext/version.rb +1 -1
- data/plugin/pyggish.rb +80 -6
- data/test/unit/html.rb +18 -20
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2dceb322a5f44e776bab9ed9113c7c7a4adf29eff271be81a613c72a081a2d51
|
4
|
+
data.tar.gz: 70576d3a39fccbe7f3285ddca930f79400b8d770ef600d043e2b3690f173ba23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d91e26a1721ce60ca41ff49a323df2e4ef0a365b0b4eec9b224cbef8381e48b6ab4f3c0bb63e74ada905efb101c69a33e021f521420abe56927b16a46e02091
|
7
|
+
data.tar.gz: fa718856dcbb75bb4f60f49f31638041158b815335ba9df3680c2ca0b117a2584d66921e06dae30b266f3104a465f826904a797e3e1a546960d75d6dc79d9d4b
|
data/bin/livetext
CHANGED
data/lib/livetext/helpers.rb
CHANGED
@@ -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
|
data/lib/livetext/standard.rb
CHANGED
@@ -117,9 +117,10 @@ module Livetext::Standard
|
|
117
117
|
api.optional_blank_line
|
118
118
|
end
|
119
119
|
|
120
|
-
def say
|
121
|
-
|
122
|
-
|
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
|
-
|
285
|
+
@debug = onoff(api.args.first)
|
285
286
|
api.optional_blank_line
|
286
287
|
end
|
287
288
|
|
data/lib/livetext/version.rb
CHANGED
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
|
-
#
|
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
|
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
|
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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
assert_equal
|
17
|
-
|
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
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
assert_equal
|
25
|
-
|
26
|
-
assert_equal
|
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'>#{
|
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.
|
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-
|
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
|