livetext 0.5.8 → 0.5.9
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db1c4c67b59a4f9386d624c09e3ba3bd0a1f4ed7
|
4
|
+
data.tar.gz: 9d36cfe4d798dfb355d45dc024e2f38a41572d7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f46d91a2cb182faf39f1e5b129bf56c94773c5fa9448074899eb4a02707521224bb02923fba6198bd4dd4c49d00fabef39fe343bfe43df416beeded4ea280c17
|
7
|
+
data.tar.gz: 791b5256347e641ffdd378e566bf06affcdb3844ee7557555865606ecbcabfd1dbb640086233b64b054d1e4a662fb942795fe19926d81c05b9328b272daae7ca
|
data/lib/livetext.rb
CHANGED
@@ -4,7 +4,7 @@ Plugins = File.expand_path(File.join(File.dirname(__FILE__), "../dsl"))
|
|
4
4
|
|
5
5
|
TTY = ::File.open("/dev/tty", "w")
|
6
6
|
|
7
|
-
require_relative "
|
7
|
+
require_relative "#{Plugins}/pyggish"
|
8
8
|
|
9
9
|
class Enumerator
|
10
10
|
def remaining
|
@@ -15,14 +15,10 @@ class Enumerator
|
|
15
15
|
end
|
16
16
|
|
17
17
|
class Livetext
|
18
|
-
VERSION = "0.5.
|
18
|
+
VERSION = "0.5.9"
|
19
19
|
|
20
|
-
MainSigil = "."
|
21
|
-
Sigils = [MainSigil]
|
22
20
|
Space = " "
|
23
21
|
|
24
|
-
Objects = { MainSigil => nil }
|
25
|
-
|
26
22
|
Disallowed = [:_data=, :nil?, :===, :=~, :!~, :eql?, :hash, :<=>,
|
27
23
|
:class, :singleton_class, :clone, :dup, :taint, :tainted?,
|
28
24
|
:untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?,
|
@@ -42,18 +38,17 @@ class Livetext
|
|
42
38
|
|
43
39
|
def self.handle_line(line)
|
44
40
|
nomarkup = true
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
end
|
41
|
+
sigil = "."
|
42
|
+
scomment = rx(sigil, Livetext::Space) # apply these in order
|
43
|
+
sname = rx(sigil)
|
44
|
+
case
|
45
|
+
when line =~ scomment
|
46
|
+
handle_scomment(sigil, line)
|
47
|
+
when line =~ sname
|
48
|
+
handle_sname(sigil, line)
|
49
|
+
else
|
50
|
+
obj = @main # Livetext::Objects[sigil]
|
51
|
+
obj._passthru(line)
|
57
52
|
end
|
58
53
|
end
|
59
54
|
|
@@ -64,7 +59,7 @@ class Livetext
|
|
64
59
|
file = File.new(fname)
|
65
60
|
end
|
66
61
|
source = file.each_line
|
67
|
-
@main = Livetext::
|
62
|
+
@main = Livetext::System.new(source)
|
68
63
|
@main._pushfile(fname)
|
69
64
|
@main.file = fname
|
70
65
|
@main.lnum = 0
|
@@ -104,7 +99,7 @@ class Livetext
|
|
104
99
|
end
|
105
100
|
|
106
101
|
def self.handle_sname(sigil, line)
|
107
|
-
obj = Livetext::Objects[sigil]
|
102
|
+
obj = @main # Livetext::Objects[sigil]
|
108
103
|
name = _get_name(obj, sigil, line)
|
109
104
|
unless obj.respond_to?(name)
|
110
105
|
abort "#{obj.where}: '#{name}' is unknown"
|
@@ -165,7 +160,7 @@ module Livetext::Helpers
|
|
165
160
|
@line = _next_line if _peek_next_line =~ /^ *$/
|
166
161
|
end
|
167
162
|
|
168
|
-
def _comment?(str, sigil=
|
163
|
+
def _comment?(str, sigil=".")
|
169
164
|
c1 = sigil + Livetext::Space
|
170
165
|
c2 = sigil + sigil + Livetext::Space
|
171
166
|
str.index(c1) == 0 || str.index(c2) == 0
|
@@ -176,14 +171,14 @@ module Livetext::Helpers
|
|
176
171
|
return false
|
177
172
|
end
|
178
173
|
|
179
|
-
def _end?(str, sigil=
|
174
|
+
def _end?(str, sigil=".")
|
180
175
|
cmd = sigil + "end"
|
181
176
|
return false if str.index(cmd) != 0
|
182
177
|
return false unless _trailing?(str[5])
|
183
178
|
return true
|
184
179
|
end
|
185
180
|
|
186
|
-
def _raw_body(tag = "__EOF__", sigil =
|
181
|
+
def _raw_body(tag = "__EOF__", sigil = ".")
|
187
182
|
lines = []
|
188
183
|
loop do
|
189
184
|
@line = _next_line
|
@@ -198,7 +193,7 @@ module Livetext::Helpers
|
|
198
193
|
end
|
199
194
|
end
|
200
195
|
|
201
|
-
def _body(sigil=
|
196
|
+
def _body(sigil=".")
|
202
197
|
lines = []
|
203
198
|
loop do
|
204
199
|
@line = _next_line # no chomp needed
|
@@ -214,7 +209,7 @@ module Livetext::Helpers
|
|
214
209
|
end
|
215
210
|
end
|
216
211
|
|
217
|
-
def _body!(sigil=
|
212
|
+
def _body!(sigil=".")
|
218
213
|
_body(sigil).join("\n")
|
219
214
|
end
|
220
215
|
|
@@ -330,6 +325,7 @@ module Livetext::Helpers
|
|
330
325
|
end
|
331
326
|
|
332
327
|
module Livetext::Standard
|
328
|
+
|
333
329
|
def comment
|
334
330
|
junk = _body # do nothing with contents
|
335
331
|
end
|
@@ -436,15 +432,6 @@ module Livetext::Standard
|
|
436
432
|
_output(name)
|
437
433
|
end
|
438
434
|
|
439
|
-
def sigil
|
440
|
-
char = _args.first
|
441
|
-
raise "'#{char}' is not a single character" if char.length > 1
|
442
|
-
obj = Livetext::Objects[Livetext::MainSigil]
|
443
|
-
Livetext::Objects.replace(char => obj)
|
444
|
-
Livetext::MainSigil.replace(char)
|
445
|
-
_optional_blank_line
|
446
|
-
end
|
447
|
-
|
448
435
|
def _def
|
449
436
|
name = _args[0]
|
450
437
|
str = "def #{name}\n"
|
@@ -497,7 +484,6 @@ module Livetext::Standard
|
|
497
484
|
def include!
|
498
485
|
file = _args.first
|
499
486
|
_pushfile
|
500
|
-
# TTY.puts "include!: ****** file = #{file}"
|
501
487
|
existing = File.exist?(file)
|
502
488
|
return if not existing
|
503
489
|
lines = ::File.readlines(file)
|
@@ -514,11 +500,17 @@ module Livetext::Standard
|
|
514
500
|
name = _args.first
|
515
501
|
file = "#{Plugins}/" + name + ".rb"
|
516
502
|
return if @_mixins.include?(file)
|
503
|
+
file = "./#{name}.rb" unless File.exist?(file)
|
504
|
+
raise "No such file: #{name}.rb found" unless File.exist?(file)
|
505
|
+
|
517
506
|
@_mixins << file
|
518
507
|
_pushfile(file)
|
519
|
-
|
520
|
-
|
521
|
-
self.class.class_eval(
|
508
|
+
main = Livetext.main
|
509
|
+
m0 = main.methods.reject {|x| x.to_s[0] == "_" }
|
510
|
+
self.class.class_eval(::File.read(file))
|
511
|
+
m1 = main.methods.reject {|x| x.to_s[0] == "_" }
|
512
|
+
$meths[file] = m1 - m0
|
513
|
+
TTY.puts "commands = #{$meths.inspect}"
|
522
514
|
init = "init_#{name}"
|
523
515
|
self.send(init) if self.respond_to? init
|
524
516
|
_optional_blank_line
|
@@ -621,8 +613,7 @@ class Livetext::System < BasicObject
|
|
621
613
|
end
|
622
614
|
end
|
623
615
|
|
624
|
-
|
625
|
-
|
616
|
+
$meths = {}
|
626
617
|
|
627
618
|
if $0 == __FILE__
|
628
619
|
Livetext.handle_file(ARGV[0] || STDIN)
|
data/livetext.gemspec
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
|
+
system("rm -f *.gem")
|
2
3
|
s.name = 'livetext'
|
3
|
-
s.version = '0.5.
|
4
|
-
s.date = '2017-03-
|
4
|
+
s.version = '0.5.9'
|
5
|
+
s.date = '2017-03-09'
|
5
6
|
s.summary = "A smart processor for text"
|
6
7
|
s.description = "A smart text processor extensible in Ruby"
|
7
8
|
s.authors = ["Hal Fulton"]
|
@@ -77,10 +78,6 @@ Gem::Specification.new do |s|
|
|
77
78
|
./test/testfiles/raw_text_block/expected-error.txt
|
78
79
|
./test/testfiles/raw_text_block/expected-output.txt
|
79
80
|
./test/testfiles/raw_text_block/source.ltx
|
80
|
-
./test/testfiles/sigil_can_change
|
81
|
-
./test/testfiles/sigil_can_change/expected-error.txt
|
82
|
-
./test/testfiles/sigil_can_change/expected-output.txt
|
83
|
-
./test/testfiles/sigil_can_change/source.ltx
|
84
81
|
./test/testfiles/simple_copy
|
85
82
|
./test/testfiles/simple_copy/expected-error.txt
|
86
83
|
./test/testfiles/simple_copy/expected-output.txt
|
data/test/test.rb
CHANGED
@@ -39,7 +39,7 @@ class TestingLiveText < MiniTest::Test
|
|
39
39
|
def test_simple_vars; external_files end
|
40
40
|
def test_more_complex_vars; external_files end
|
41
41
|
|
42
|
-
|
42
|
+
# def test_sigil_can_change; external_files end
|
43
43
|
|
44
44
|
def test_def_method; external_files end
|
45
45
|
|
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.5.
|
4
|
+
version: 0.5.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A smart text processor extensible in Ruby
|
14
14
|
email: rubyhacker@gmail.com
|
@@ -70,9 +70,6 @@ files:
|
|
70
70
|
- "./test/testfiles/raw_text_block/expected-error.txt"
|
71
71
|
- "./test/testfiles/raw_text_block/expected-output.txt"
|
72
72
|
- "./test/testfiles/raw_text_block/source.ltx"
|
73
|
-
- "./test/testfiles/sigil_can_change/expected-error.txt"
|
74
|
-
- "./test/testfiles/sigil_can_change/expected-output.txt"
|
75
|
-
- "./test/testfiles/sigil_can_change/source.ltx"
|
76
73
|
- "./test/testfiles/simple_copy/expected-error.txt"
|
77
74
|
- "./test/testfiles/simple_copy/expected-output.txt"
|
78
75
|
- "./test/testfiles/simple_copy/source.ltx"
|
File without changes
|