livetext 0.9.32 → 0.9.33

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: c6069fc394894011ca9f5ed2db3022b62a3a8c541c51566126551297e60eec74
4
- data.tar.gz: b95803194c64a840262b4912e9116905c27a1879e4f6ec4309ae48404b31fa7e
3
+ metadata.gz: 4c6ed527394d333fd5c667d5737093c26595794269dcf444d72bc28cdcbf8c61
4
+ data.tar.gz: 7eb6d6907ebfd5bfd2ee7f8253a0c3a051d06cd83ffaac5baca388406168db6c
5
5
  SHA512:
6
- metadata.gz: '046369b5d8a1c659fc210eea5134e79d9c8c0cfff0a2a833fff84b89001b115f4bd326fcf10cddcabc284e3abf964ad59e43330f7b4783dc4fba7d4255e66db9'
7
- data.tar.gz: 20fb083bbd8d727c5e5774c784afa49f9a0edd58e339bdd4b7966916ffa94cbe335c6f702c841b67b75c053c88592b7b864eb9abef60aa96a9a949f5171769e0
6
+ metadata.gz: 57b37bb2795cacaa81f86f4d251d438b92dd8d0fd7f71839eb68edda95a4bf5d60a56af46d93d9ba93de118b7b878eea53f5daecab6459dd73a0167a5aba33d4
7
+ data.tar.gz: 7c7fb6ac4101629dd86b0901a961fc8d4c4901b661ff0eb8553081f7617601c7d807df03212ac57ab14b8c740a3a60efcfd3c2d951bea6b509f57a89170fa2b9
data/bin/livetext CHANGED
@@ -66,7 +66,7 @@ end
66
66
 
67
67
  def install_plugin
68
68
  lib = ARGV.shift
69
- system("cp #{lib} #{Livetext::Path}/../plugin/")
69
+ system("cp #{lib} #{Livetext::Path}/../../plugin/")
70
70
  end
71
71
 
72
72
  def parse_command_line
@@ -41,7 +41,6 @@ module Formatter
41
41
  end
42
42
 
43
43
  def grab_terminator
44
- status("** grabterm 0")
45
44
  @state = :LOOPING
46
45
  # goes onto buffer by default
47
46
  # Don't? what if searching for space_marker?
@@ -73,7 +72,6 @@ module Formatter
73
72
  end
74
73
 
75
74
  def wrap(text)
76
- status("** wrap 0")
77
75
  if text.empty?
78
76
  result = @marker
79
77
  result = "" if @marker[1] == "["
@@ -83,60 +81,45 @@ module Formatter
83
81
  end
84
82
 
85
83
  def initial
86
- status("** init 0")
87
84
  n = @marker.length
88
85
  case
89
86
  when escape?
90
- status("** esc i0")
91
87
  grab # backslash
92
- status("** esc i1")
93
88
  @buffer << grab # char
94
- status("** esc i2")
95
89
  when space_marker?
96
- status("** init 1")
97
90
  @buffer << grab # append the space
98
91
  grab(n) # eat the marker
99
92
  @state = :CDATA
100
93
  when marker?
101
- status("** init 2")
102
94
  grab(n) # Eat the marker
103
95
  @state = :CDATA
104
96
  when eol?
105
- status("** init 3")
106
97
  @state = :FINAL
107
98
  else
108
- status("** init 4")
109
99
  @state = :BUFFER
110
100
  end
111
101
  end
112
102
 
113
103
  def buffer
114
- status("** buffer 0")
115
104
  @buffer << grab
116
105
  @state = :LOOPING
117
106
  end
118
107
 
119
108
  def cdata
120
- status("** cdata 0")
121
109
  case
122
110
  when eol?
123
- status("** cdata 1")
124
111
  if @cdata.empty?
125
- status("** cdata 2")
126
112
  @buffer << @marker unless @marker[1] == "["
127
113
  else
128
- status("** cdata 3")
129
114
  @buffer << wrap(@cdata)
130
115
  end
131
116
  @state = :FINAL
132
117
  when terminated?
133
- status("** cdata 4")
134
118
  @buffer << wrap(@cdata)
135
119
  grab_terminator # "*a *b" case???
136
120
  @cdata = ""
137
121
  @state = :LOOPING
138
122
  else
139
- status("** cdata 5")
140
123
  @cdata << grab
141
124
  @state = :CDATA
142
125
  end
@@ -146,11 +129,8 @@ module Formatter
146
129
  n = @marker.length
147
130
  case
148
131
  when escape?
149
- status("** esc l0")
150
132
  grab # backslash
151
- status("** esc l1")
152
133
  @buffer << grab # char
153
- status("** esc l2")
154
134
  when space_marker?
155
135
  @buffer << grab # append the space
156
136
  grab(n) # eat the marker
data/lib/livetext/more.rb CHANGED
@@ -7,6 +7,7 @@ class Livetext
7
7
 
8
8
  class Variables
9
9
  attr_reader :vars
10
+
10
11
  def initialize(hash = {})
11
12
  @vars = {}
12
13
  hash.each_pair {|k, v| @vars[k.to_sym] = v }
@@ -34,6 +35,10 @@ class Livetext
34
35
  api.setvar(var, value)
35
36
  end
36
37
  end
38
+
39
+ def to_a
40
+ @vars.to_a
41
+ end
37
42
  end
38
43
 
39
44
  Vars = Variables.new
@@ -95,7 +100,10 @@ class Livetext
95
100
  obj = self.new
96
101
  mix = Array(mix)
97
102
  call = Array(call)
98
- mix.each {|lib| obj.mixin(lib) }
103
+ # STDERR.puts "#{__method__}: obj meth = #{obj.methods.sort.inspect}"
104
+ mix.each do |lib|
105
+ obj.invoke_dotcmd(:mixin, lib.dup)
106
+ end
99
107
  call.each {|cmd| obj.main.send(cmd[1..-1]) } # ignores leading dot, no param
100
108
  # vars.each_pair {|var, val| obj.setvar(var, val.to_s) }
101
109
  obj.api.setvars(vars)
@@ -173,7 +173,6 @@ module Livetext::Standard
173
173
  lines = api.body
174
174
  end
175
175
  pairs = Livetext::ParseGeneral.parse_vars(lines, prefix: nil)
176
- STDERR.puts "! pairs = #{pairs.inspect}"
177
176
  api.setvars(pairs)
178
177
  api.optional_blank_line
179
178
  end
@@ -189,7 +188,6 @@ STDERR.puts "! pairs = #{pairs.inspect}"
189
188
  lines = api.body
190
189
  end
191
190
  pairs = Livetext::ParseGeneral.parse_vars(lines, prefix: nil)
192
- STDERR.puts "pairs = #{pairs.inspect}"
193
191
  api.setvars(pairs)
194
192
  api.optional_blank_line
195
193
  end
@@ -217,7 +215,7 @@ STDERR.puts "pairs = #{pairs.inspect}"
217
215
  end
218
216
 
219
217
  def dot_include # dot command
220
- file = api.args.first # api.format(api.args.first) # allows for variables
218
+ file = api.expand_variables(api.args.first) # allows for variables
221
219
  check_file_exists(file)
222
220
  @parent.process_file(file)
223
221
  api.optional_blank_line
@@ -31,12 +31,26 @@ class Livetext::UserAPI
31
31
  @live
32
32
  end
33
33
 
34
+ def include_file(file)
35
+ api.data = file
36
+ api.dot_include
37
+ end
38
+
39
+ def expand_variables(str)
40
+ @expander.expand_variables(str)
41
+ end
42
+
43
+ def expand_functions(str)
44
+ @expander.expand_functions(str)
45
+ end
46
+
34
47
  def setvar(var, val) # FIXME
35
48
  @live.vars.set(var, val)
36
49
  end
37
50
 
38
51
  def setvars(pairs)
39
- pairs = pairs.to_a if pairs.is_a?(Hash)
52
+ # STDERR.puts "#{__method__}: pairs = #{pairs.inspect} (#{pairs.class})"
53
+ pairs = pairs.to_a # could be Hash or Variables
40
54
  pairs.each do |var, value|
41
55
  @live.vars.set(var, value)
42
56
  end
@@ -2,5 +2,5 @@
2
2
  # Defining VERSION
3
3
 
4
4
  class Livetext
5
- VERSION = "0.9.32"
5
+ VERSION = "0.9.33"
6
6
  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.32
4
+ version: 0.9.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-17 00:00:00.000000000 Z
11
+ date: 2022-08-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A smart text processor extensible in Ruby
14
14
  email: rubyhacker@gmail.com