livetext 0.9.32 → 0.9.33

Sign up to get free protection for your applications and to get access to all the features.
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