Class: Livetext::UserAPI
Overview
Encapsulate the UserAPI as a class
Constant Summary
collapse
- KBD =
File.new("/dev/tty", "r")
- TTY =
File.new("/dev/tty", "w")
- DotSpace =
Livetext::Sigil + Livetext::Space
". "
Constants included
from Standard
Standard::SimpleFormats
Constants included
from Helpers
Helpers::Comment, Helpers::DollarDot, Helpers::DotCmd, Helpers::ESCAPING, Helpers::Sigil, Helpers::Space
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Standard
#backtrace, #banner, #bits, #br, #cinclude, #cleanup, #comment, #copy, #dlist, #dot_def, #dot_include, #errout, #func, #h1, #h2, #h3, #h4, #h5, #h6, #heading, #heredoc, #heredoc!, #image, #import, #inherit, #link, #list, #list!, #mixin, #mono, #newpage, #nopara, #nopass, #para, #quit, #r, #raw, #reflection, #say, #seek, #set, #shell, #shell!, #ttyout, #variables, #variables!, #xtable
Methods included from Helpers
#check_disallowed, #check_file_exists, #escape_html, #find_file, #friendly_error, #get_name_data, #grab_file, #handle_dollar_dot, #handle_dotcmd, #handle_scomment, #invoke_dotcmd, #onoff, #process_file, #process_line, #read_variables, rx, #search_upward, #set_variables, #setfile, #setfile!, #showme
Constructor Details
#initialize(live) ⇒ UserAPI
Returns a new instance of UserAPI.
17
18
19
20
21
22
|
# File 'lib/livetext/userapi.rb', line 17
def initialize(live)
@live = live
@vars = live.vars
@html = HTML.new(self)
@expander = Livetext::Expansion.new(live)
end
|
Instance Attribute Details
Returns the value of attribute args.
15
16
17
|
# File 'lib/livetext/userapi.rb', line 15
def args
@args
end
|
Returns the value of attribute data.
15
16
17
|
# File 'lib/livetext/userapi.rb', line 15
def data
@data
end
|
Instance Method Details
24
25
26
|
# File 'lib/livetext/userapi.rb', line 24
def api
@live.api
end
|
#body(raw = false) ⇒ Object
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# File 'lib/livetext/userapi.rb', line 121
def body(raw=false)
lines = []
end_found = false
loop do
@line = @live.nextline
break if @line.nil?
@line.chomp!
break if end?(@line)
next if (@line)
@line = format(@line) unless raw
lines << @line
end
raise "Expected .end, found end of file" unless end?(@line) optional_blank_line return lines unless block_given?
lines.each {|line| yield line } end
|
#body_text(raw = false) ⇒ Object
139
140
141
|
# File 'lib/livetext/userapi.rb', line 139
def body_text(raw=false)
raw_body.join("\n")
end
|
#check_existence(file, msg) ⇒ Object
63
64
65
|
# File 'lib/livetext/userapi.rb', line 63
def check_existence(file, msg)
STDERR.puts msg unless File.exist?(file)
end
|
93
94
95
|
# File 'lib/livetext/userapi.rb', line 93
def (str)
str.index(DotSpace) == 0
end
|
#debug(*args) ⇒ Object
205
206
207
|
# File 'lib/livetext/userapi.rb', line 205
def debug(*args)
TTY.puts *args if @live.debug
end
|
#debug=(val) ⇒ Object
201
202
203
|
# File 'lib/livetext/userapi.rb', line 201
def debug=(val)
@live.debug = val
end
|
32
33
34
|
# File 'lib/livetext/userapi.rb', line 32
def dot
@live
end
|
#end?(str) ⇒ Boolean
102
103
104
105
|
# File 'lib/livetext/userapi.rb', line 102
def end?(str)
return true if str == ".end" || str =~ / *\$\.end/
return false
end
|
#err(*args) ⇒ Object
189
190
191
|
# File 'lib/livetext/userapi.rb', line 189
def err(*args)
STDERR.puts *args
end
|
#expand_functions(str) ⇒ Object
47
48
49
|
# File 'lib/livetext/userapi.rb', line 47
def expand_functions(str)
@expander.expand_functions(str)
end
|
#expand_variables(str) ⇒ Object
43
44
45
|
# File 'lib/livetext/userapi.rb', line 43
def expand_variables(str)
@expander.expand_variables(str)
end
|
155
156
157
158
|
# File 'lib/livetext/userapi.rb', line 155
def format(line)
line2 = @expander.format(line)
line2
end
|
#handle_escapes(str, set) ⇒ Object
147
148
149
150
151
152
153
|
# File 'lib/livetext/userapi.rb', line 147
def handle_escapes(str, set)
str = str.dup
set.each_char do |ch|
str.gsub!("\\#{ch}", ch)
end
str
end
|
28
29
30
|
# File 'lib/livetext/userapi.rb', line 28
def html
@html
end
|
#include_file(file) ⇒ Object
36
37
38
39
40
41
|
# File 'lib/livetext/userapi.rb', line 36
def include_file(file)
api.data = file
api.args = [file]
STDERR.puts "incfile: #{api.methods.sort.inspect}\n "
api.dot_include
end
|
#optional_blank_line ⇒ Object
86
87
88
89
90
91
|
# File 'lib/livetext/userapi.rb', line 86
def optional_blank_line
peek = @live.peek_nextline return if peek.nil?
@line = @live.nextline if peek =~ /^ *$/
return true end
|
#out(str = "", file = nil) ⇒ Object
173
174
175
176
177
178
179
|
# File 'lib/livetext/userapi.rb', line 173
def out(str = "", file = nil)
return if str.nil?
return file.puts str unless file.nil?
str.gsub!("\b ", "") @live.body << str
@live.body << "\n" unless str.end_with?("\n")
end
|
#out!(str = "") ⇒ Object
181
182
183
|
# File 'lib/livetext/userapi.rb', line 181
def out!(str = "")
@live.body << str end
|
#passthru(line) ⇒ Object
160
161
162
163
164
165
166
167
168
169
170
171
|
# File 'lib/livetext/userapi.rb', line 160
def passthru(line)
return if @live.nopass
if line == "\n"
unless @live.nopara
out "<p>"
out
end
else
text = @expander.format(line.chomp)
out text
end
end
|
#print(*args) ⇒ Object
197
198
199
|
# File 'lib/livetext/userapi.rb', line 197
def print(*args)
@live.output.print *args
end
|
#puts(*args) ⇒ Object
193
194
195
|
# File 'lib/livetext/userapi.rb', line 193
def puts(*args)
@live.output.puts *args
end
|
#raw_body(tag = "__EOF__") ⇒ Object
107
108
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/livetext/userapi.rb', line 107
def raw_body(tag = "__EOF__")
lines = []
@live.save_location = @live.sources.last
loop do
@line = @live.nextline
break if @line.nil?
break if @line.chomp.strip == tag
lines << @line
end
optional_blank_line
return lines unless block_given?
lines.each {|line| yield line }
end
|
#raw_body! ⇒ Object
143
144
145
|
# File 'lib/livetext/userapi.rb', line 143
def raw_body!
raw_body(Livetext::Sigil).join("\n")
end
|
#setvar(var, val) ⇒ Object
51
52
53
|
# File 'lib/livetext/userapi.rb', line 51
def setvar(var, val) @live.vars.set(var, val)
end
|
#setvars(pairs) ⇒ Object
55
56
57
58
59
60
61
|
# File 'lib/livetext/userapi.rb', line 55
def setvars(pairs)
pairs = pairs.to_a pairs.each do |var, value|
@live.vars.set(var, value)
end
end
|
#trailing?(char) ⇒ Boolean
97
98
99
100
|
# File 'lib/livetext/userapi.rb', line 97
def trailing?(char)
return true if ["\n", " ", nil].include?(char)
return false
end
|
#tty(*args) ⇒ Object
185
186
187
|
# File 'lib/livetext/userapi.rb', line 185
def tty(*args)
TTY.puts *args
end
|
82
83
84
|
# File 'lib/livetext/userapi.rb', line 82
def vars
@vars
end
|