livetext 0.9.59 → 0.9.60
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/lib/livetext/core.rb +1 -0
- data/lib/livetext/helpers.rb +1 -0
- data/lib/livetext/userapi.rb +12 -2
- data/lib/livetext/version.rb +1 -1
- data/test/snapshots/basic_formatting/expected-output.txt +6 -2
- data/test/snapshots/block_comment/expected-output.txt +2 -0
- data/test/snapshots/comments_ignored_1/expected-output.txt +2 -0
- data/test/snapshots/complex_body/expected-output.txt +4 -1
- data/test/snapshots/copy_is_raw/expected-output.txt +2 -0
- data/test/snapshots/def_method/expected-output.txt +4 -1
- data/test/snapshots/def_parameters/expected-output.txt +6 -2
- data/test/snapshots/error_inc_line_num/expected-output.txt +1 -0
- data/test/snapshots/error_invalid_name/expected-output.txt +3 -1
- data/test/snapshots/error_line_num/expected-output.txt +1 -0
- data/test/snapshots/error_mismatched_end/expected-output.txt +3 -1
- data/test/snapshots/error_missing_end/expected-output.txt +3 -1
- data/test/snapshots/error_name_not_permitted/expected-output.txt +3 -1
- data/test/snapshots/error_no_such_copy/expected-output.txt +3 -1
- data/test/snapshots/error_no_such_inc/expected-output.txt +3 -1
- data/test/snapshots/error_no_such_mixin/expected-output.txt +3 -1
- data/test/snapshots/example_alpha/expected-output.txt +6 -2
- data/test/snapshots/example_alpha2/expected-output.txt +4 -1
- data/test/snapshots/functions/expected-output.txt +12 -5
- data/test/snapshots/functions_reflection/expected-output.txt +1 -0
- data/test/snapshots/hello_world/expected-output.txt +2 -0
- data/test/snapshots/import/expected-output.txt +3 -1
- data/test/snapshots/import2/expected-output.txt +6 -2
- data/test/snapshots/import_bookish/expected-output.txt +1 -0
- data/test/snapshots/mixin_booktool/expected-output.txt +1 -0
- data/test/snapshots/mixin_functions/expected-output.txt +12 -5
- data/test/snapshots/mixin_functions_class/expected-output.txt +12 -5
- data/test/snapshots/more_complex_vars/expected-output.txt +2 -0
- data/test/snapshots/more_functions/expected-output.txt +23 -10
- data/test/snapshots/multiple_functions/expected-output.txt +4 -1
- data/test/snapshots/nested_includes/expected-output.txt +26 -11
- data/test/snapshots/parameter_handling/expected-output.txt +4 -1
- data/test/snapshots/predef_vars/match-output.txt +8 -6
- data/test/snapshots/raw_lines/expected-output.txt +4 -1
- data/test/snapshots/raw_text_block/expected-output.txt +2 -0
- data/test/snapshots/simple_copy/expected-output.txt +2 -0
- data/test/snapshots/simple_import/expected-output.txt +6 -2
- data/test/snapshots/simple_include/expected-output.txt +3 -0
- data/test/snapshots/simple_mixin/expected-output.txt +2 -0
- data/test/snapshots/simple_vars/expected-output.txt +2 -0
- data/test/snapshots/single_raw_line/expected-output.txt +4 -1
- data/test/snapshots/system_info/match-output.txt +22 -18
- data/test/snapshots/table_with_heredocs/expected-output.txt +4 -1
- data/test/snapshots/var_into_func/expected-output.txt +12 -5
- metadata +1 -5
- data/test/snapshots/system_info/actual-error.txt +0 -0
- data/test/snapshots/system_info/actual-output.txt +0 -20
- data/test/snapshots/system_info/err-sdiff.txt +0 -1
- data/test/snapshots/system_info/expected-output.txt +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63cd6b938fdb29f4b900ffb1ded5d378a9ae5d9c6274ec593f8593c2bd47e718
|
4
|
+
data.tar.gz: d62dcbfc69af01c7dc3d15608e2b95c6c3abc0347769fac24b8b600727608f35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb08277e4f424959940ba49f8dee3edc65347038a046b46235b618f70a11dfd92932316f325f83f2930938dd97bee26eae172e17951918638137055fc92599c6
|
7
|
+
data.tar.gz: 9834c220e9775071b4e2d5769e5aa0b518e0de760940db1d10a837024f879eb449b98da8eff90f9a2696277f780b6e8baa7595439815411c70795ef865328c12
|
data/lib/livetext/core.rb
CHANGED
data/lib/livetext/helpers.rb
CHANGED
data/lib/livetext/userapi.rb
CHANGED
@@ -188,15 +188,25 @@ class Livetext::UserAPI
|
|
188
188
|
return if @live.nopass
|
189
189
|
if line == "\n"
|
190
190
|
unless @live.nopara
|
191
|
-
out "<p>"
|
192
|
-
out
|
191
|
+
out "</p>\n\n<p>"
|
193
192
|
end
|
194
193
|
else
|
194
|
+
# Start first paragraph if needed
|
195
|
+
if @live.body.empty? && !@live.nopara
|
196
|
+
out "<p>"
|
197
|
+
end
|
195
198
|
text = @expander.format(line.chomp)
|
196
199
|
out text
|
197
200
|
end
|
198
201
|
end
|
199
202
|
|
203
|
+
def close_paragraph
|
204
|
+
return if @live.nopara
|
205
|
+
return if @live.body.empty?
|
206
|
+
return if @live.body.end_with?("</p>")
|
207
|
+
out "</p>"
|
208
|
+
end
|
209
|
+
|
200
210
|
def out(str = "", file = nil)
|
201
211
|
return if str.nil?
|
202
212
|
return file.puts str unless file.nil?
|
data/lib/livetext/version.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
+
<p>
|
1
2
|
Here are examples of <b>boldface</b>
|
2
3
|
and <i>italics</i>
|
3
4
|
and <tt>code</tt>
|
4
5
|
as well as <b>more complex</b> examples
|
5
6
|
of <i>italicized text</i>
|
6
7
|
and <tt>code font</tt>.
|
7
|
-
|
8
|
+
</p>
|
8
9
|
|
10
|
+
<p>
|
9
11
|
Here are some random punctuation marks:
|
10
12
|
; # . * _ ` : @ % ^ & $
|
11
|
-
|
13
|
+
</p>
|
12
14
|
|
15
|
+
<p>
|
13
16
|
No need to escape these: * _ `
|
17
|
+
</p>
|
@@ -1,12 +1,15 @@
|
|
1
|
+
<p>
|
1
2
|
Testing no parameters:
|
2
3
|
No parameters method called
|
3
|
-
|
4
|
+
</p>
|
4
5
|
|
6
|
+
<p>
|
5
7
|
Testing with args and data:
|
6
8
|
Args: ["arg1", "arg2"], Data: "arg1 arg2"
|
7
9
|
This is the data line
|
8
|
-
|
10
|
+
</p>
|
9
11
|
|
12
|
+
<p>
|
10
13
|
Testing with body:
|
11
14
|
Args: ["arg1", "arg2"], Data: "arg1 arg2"
|
12
15
|
Body has 3 lines:
|
@@ -19,3 +22,4 @@ Raw body has 3 lines:
|
|
19
22
|
1: This is line 1 of the raw body
|
20
23
|
2: This is line 2 of the raw body
|
21
24
|
3: This is line 3 of the raw body
|
25
|
+
</p>
|
@@ -1,6 +1,8 @@
|
|
1
|
-
Here is an alphabetized list:
|
2
1
|
<p>
|
2
|
+
Here is an alphabetized list:
|
3
|
+
</p>
|
3
4
|
|
5
|
+
<p>
|
4
6
|
aardvark
|
5
7
|
anamorphic
|
6
8
|
anarchist
|
@@ -18,6 +20,8 @@ Here is an alphabetized list:
|
|
18
20
|
quark
|
19
21
|
zootrope
|
20
22
|
zymurgy
|
21
|
-
|
23
|
+
</p>
|
22
24
|
|
25
|
+
<p>
|
23
26
|
That's all.
|
27
|
+
</p>
|
@@ -1,6 +1,8 @@
|
|
1
|
-
Here is an alphabetized list:
|
2
1
|
<p>
|
2
|
+
Here is an alphabetized list:
|
3
|
+
</p>
|
3
4
|
|
5
|
+
<p>
|
4
6
|
aardvark anamorphic anarchist
|
5
7
|
bellicose cytology ectomorph
|
6
8
|
fishmonger fusillade glyph
|
@@ -8,3 +10,4 @@ gryphon halcyon manicotti
|
|
8
10
|
mataeotechny pareidolia quark
|
9
11
|
zootrope zymurgy
|
10
12
|
And that is all.
|
13
|
+
</p>
|
@@ -1,20 +1,27 @@
|
|
1
|
+
<p>
|
1
2
|
Testing out
|
2
3
|
some functions
|
3
4
|
here...
|
4
|
-
|
5
|
+
</p>
|
5
6
|
|
7
|
+
<p>
|
6
8
|
I am calling Eureka! here...
|
7
9
|
Let's see
|
8
10
|
what happens.
|
9
|
-
|
11
|
+
</p>
|
10
12
|
|
13
|
+
<p>
|
11
14
|
Functions can take a parameter in brackets
|
12
15
|
(which it can parse itself as needed):
|
13
|
-
|
16
|
+
</p>
|
14
17
|
|
15
|
-
The result is 4.0 as I see it.
|
16
18
|
<p>
|
19
|
+
The result is 4.0 as I see it.
|
20
|
+
</p>
|
17
21
|
|
18
|
-
Some functions like date and time are predefined.
|
19
22
|
<p>
|
23
|
+
Some functions like date and time are predefined.
|
24
|
+
</p>
|
20
25
|
|
26
|
+
<p>
|
27
|
+
</p>
|
@@ -1,18 +1,25 @@
|
|
1
|
-
Testing functions defined in external .rb files
|
2
1
|
<p>
|
2
|
+
Testing functions defined in external .rb files
|
3
|
+
</p>
|
3
4
|
|
5
|
+
<p>
|
4
6
|
Now calling a function defined in the .rb file:
|
5
7
|
External function called with: test_parameter
|
6
|
-
|
8
|
+
</p>
|
7
9
|
|
10
|
+
<p>
|
8
11
|
And another one with brackets:
|
9
12
|
Another function called with: with brackets
|
10
|
-
|
13
|
+
</p>
|
11
14
|
|
15
|
+
<p>
|
12
16
|
And a function with no parameters:
|
13
17
|
Simple function with no parameters
|
14
|
-
|
18
|
+
</p>
|
15
19
|
|
16
|
-
That's all.
|
17
20
|
<p>
|
21
|
+
That's all.
|
22
|
+
</p>
|
18
23
|
|
24
|
+
<p>
|
25
|
+
</p>
|
@@ -1,20 +1,27 @@
|
|
1
|
-
Testing functions defined in Livetext::Functions class
|
2
1
|
<p>
|
2
|
+
Testing functions defined in Livetext::Functions class
|
3
|
+
</p>
|
3
4
|
|
5
|
+
<p>
|
4
6
|
Now calling functions defined in Livetext::Functions class:
|
5
7
|
Class function called with: test_parameter
|
6
|
-
|
8
|
+
</p>
|
7
9
|
|
10
|
+
<p>
|
8
11
|
And another one with brackets:
|
9
12
|
Another class function called with: with brackets
|
10
|
-
|
13
|
+
</p>
|
11
14
|
|
15
|
+
<p>
|
12
16
|
And a function with no parameters:
|
13
17
|
Simple class function with no parameters
|
14
|
-
|
18
|
+
</p>
|
15
19
|
|
20
|
+
<p>
|
16
21
|
Testing that the functions have access to Livetext::Vars:
|
17
22
|
Vars test: param=some_value, View=[View is undefined]
|
18
|
-
|
23
|
+
</p>
|
19
24
|
|
25
|
+
<p>
|
20
26
|
That's all.
|
27
|
+
</p>
|
@@ -1,37 +1,50 @@
|
|
1
|
-
Testing some more functions here...
|
2
1
|
<p>
|
2
|
+
Testing some more functions here...
|
3
|
+
</p>
|
3
4
|
|
5
|
+
<p>
|
4
6
|
Here I am calling a function with
|
5
7
|
a colon parameter...
|
6
|
-
|
8
|
+
</p>
|
7
9
|
|
8
10
|
<p>
|
11
|
+
</p>
|
9
12
|
|
10
|
-
Next let's <b>do</b> something with our parameter:
|
11
13
|
<p>
|
14
|
+
Next let's <b>do</b> something with our parameter:
|
15
|
+
</p>
|
12
16
|
|
13
|
-
I'll call these variants...
|
14
17
|
<p>
|
18
|
+
I'll call these variants...
|
19
|
+
</p>
|
15
20
|
|
16
|
-
"Motel" spelled backwards is letom :)
|
17
21
|
<p>
|
22
|
+
"Motel" spelled backwards is letom :)
|
23
|
+
</p>
|
18
24
|
|
19
|
-
"lamina" reversed is animal
|
20
25
|
<p>
|
26
|
+
"lamina" reversed is animal
|
27
|
+
</p>
|
21
28
|
|
22
|
-
I can also use the erutaef tekcarb here.
|
23
29
|
<p>
|
30
|
+
I can also use the erutaef tekcarb here.
|
31
|
+
</p>
|
24
32
|
|
33
|
+
<p>
|
25
34
|
If I don't use a parameter for [Error evaluating $$reverse()] - it gives
|
26
35
|
me an error. (Bug or feature??)
|
27
|
-
|
36
|
+
</p>
|
28
37
|
|
38
|
+
<p>
|
29
39
|
What if a function doesn't use parameters at all, but
|
30
40
|
we pass them? Hmm...
|
31
|
-
|
41
|
+
</p>
|
32
42
|
|
43
|
+
<p>
|
33
44
|
Now we succeed and succeed some more
|
34
45
|
and finally we succeed in life.
|
35
|
-
|
46
|
+
</p>
|
36
47
|
|
48
|
+
<p>
|
37
49
|
But can we succeed, when our beds are burning?
|
50
|
+
</p>
|
@@ -1,68 +1,83 @@
|
|
1
|
+
<p>
|
1
2
|
# Main file - Level 1
|
2
3
|
# This file includes level2 and tests all variables and functions from all levels
|
3
|
-
|
4
|
+
</p>
|
4
5
|
|
6
|
+
<p>
|
5
7
|
# Include level2 (which includes level3)
|
6
8
|
# Level 2 - Middle level
|
7
9
|
# This file includes level3 and defines its own variables and functions
|
8
|
-
|
10
|
+
</p>
|
9
11
|
|
12
|
+
<p>
|
10
13
|
# Level 3 - Deepest level
|
11
14
|
# This file defines variables and functions that should be accessible to all higher levels
|
12
|
-
|
15
|
+
</p>
|
13
16
|
|
17
|
+
<p>
|
14
18
|
This is content from level 3.
|
15
19
|
The deep variable is: I am from level 3
|
16
20
|
The deep number is: 42
|
21
|
+
</p>
|
17
22
|
This is content from level 2.
|
18
23
|
The middle variable is: I am from level 2
|
19
24
|
The middle number is: 100
|
20
|
-
|
25
|
+
</p>
|
21
26
|
|
27
|
+
<p>
|
22
28
|
# Test using deep level variables and functions
|
23
29
|
Deep variable from level 2: I am from level 3
|
24
30
|
Deep function call: Deep function called with: from level 2
|
25
31
|
Deep math: 42 = 42
|
26
|
-
|
32
|
+
</p>
|
27
33
|
|
34
|
+
<p>
|
28
35
|
# Test our own variables and functions
|
29
36
|
Middle function call: Middle function called with: from level 2
|
30
37
|
Combined variables: Deep: I am from level 3, Middle: I am from level 2
|
31
|
-
|
38
|
+
</p>
|
32
39
|
|
40
|
+
<p>
|
33
41
|
# Test deep method from level 3
|
34
42
|
Deep method called from level 3
|
43
|
+
</p>
|
35
44
|
# Test all variables from all levels
|
36
45
|
Main variable: I am from main level
|
37
46
|
Middle variable: I am from level 2
|
38
47
|
Deep variable: I am from level 3
|
39
|
-
|
48
|
+
</p>
|
40
49
|
|
50
|
+
<p>
|
41
51
|
# Test all functions from all levels
|
42
52
|
Main function: Main function called with: from main
|
43
53
|
Middle function: Middle function called with: from main
|
44
54
|
Deep function: Deep function called with: from main
|
45
|
-
|
55
|
+
</p>
|
46
56
|
|
57
|
+
<p>
|
47
58
|
# Test math functions
|
48
59
|
Deep math: 20 = 20
|
49
60
|
Main number: 999
|
50
61
|
Middle number: 100
|
51
62
|
Deep number: 42
|
52
|
-
|
63
|
+
</p>
|
53
64
|
|
65
|
+
<p>
|
54
66
|
# Test combined functions
|
55
67
|
Combine vars: Deep: I am from level 3, Middle: I am from level 2
|
56
68
|
Test all levels: Main: I am from main level, Middle: I am from level 2, Deep: I am from level 3
|
57
|
-
|
69
|
+
</p>
|
58
70
|
|
71
|
+
<p>
|
59
72
|
# Test methods from all levels
|
60
73
|
Main method called from main level
|
61
74
|
Middle method called from level 2
|
62
75
|
Deep method called from level 3
|
63
|
-
|
76
|
+
</p>
|
64
77
|
|
78
|
+
<p>
|
65
79
|
# Test that we can still access everything after the include
|
66
80
|
Final test - deep function: Deep function called with: final call
|
67
81
|
Final test - middle function: Middle function called with: final call
|
68
82
|
Final test - main function: Main function called with: final call
|
83
|
+
</p>
|
@@ -1,6 +1,8 @@
|
|
1
|
-
1
|
2
|
-
2
|
3
|
-
3
|
4
|
-
4 /
|
5
|
-
5 /
|
6
|
-
6
|
1
|
+
1 <p>
|
2
|
+
2 Here we go...
|
3
|
+
3 File = source.lt3
|
4
|
+
4 /FileDir = .*.test.snapshots.predef_vars/
|
5
|
+
5 /User = [A-Za-z][A-Za-z0-9]*/
|
6
|
+
6 /Version = 0\.\d{1,2}\.\d{1,2}/
|
7
|
+
7 NoSuchVar = [NoSuchVar is undefined]
|
8
|
+
8 </p>
|
@@ -1,7 +1,9 @@
|
|
1
|
+
<p>
|
1
2
|
The .r can be used to output single lines
|
2
3
|
without interpretation:
|
3
|
-
|
4
|
+
</p>
|
4
5
|
|
6
|
+
<p>
|
5
7
|
Ordinary line... plus two blank lines:
|
6
8
|
|
7
9
|
|
@@ -9,3 +11,4 @@ No formatting: *foo `foo _foo ~foo
|
|
9
11
|
No variables: $alpha $beta
|
10
12
|
No functions: $$this $$that
|
11
13
|
That's all.
|
14
|
+
</p>
|
@@ -1,18 +1,22 @@
|
|
1
|
-
1
|
2
|
-
2
|
3
|
-
3
|
4
|
-
4 /
|
5
|
-
5
|
6
|
-
6
|
7
|
-
7
|
8
|
-
8
|
9
|
-
9
|
10
|
-
10
|
11
|
-
11
|
12
|
-
12
|
13
|
-
13
|
14
|
-
14
|
15
|
-
15
|
16
|
-
16
|
17
|
-
17
|
18
|
-
18
|
1
|
+
1 <p>
|
2
|
+
2 System Info Variables:
|
3
|
+
3 Hostname: HAL9000
|
4
|
+
4 /Platform: .*x86_64-darwin\d+/
|
5
|
+
5 /Ruby Version: \d+\.\d+\.\d+/
|
6
|
+
6 Livetext Version: 0.9.59
|
7
|
+
7 </p>
|
8
|
+
8
|
9
|
+
9 <p>
|
10
|
+
10 System Info Functions:
|
11
|
+
11 Hostname: HAL9000
|
12
|
+
12 /Platform: .*x86_64-darwin\d+/
|
13
|
+
13 /Ruby Version: \d+\.\d+\.\d+/
|
14
|
+
14 /Livetext Version: \d+\.\d+\.\d+/
|
15
|
+
15 </p>
|
16
|
+
16
|
17
|
+
17 <p>
|
18
|
+
18 Date Formatting Functions:
|
19
|
+
19 /Default: \d{4}-\d{2}-\d{2}/
|
20
|
+
20 /Days ago: \d{4}-\d{2}-\d{2}/
|
21
|
+
21 /Days from now: \d{4}-\d{2}-\d{2}/
|
22
|
+
22 </p>
|
@@ -1,16 +1,23 @@
|
|
1
|
-
|
1
|
+
</p>
|
2
2
|
|
3
|
-
Testing STILL more functions here...
|
4
3
|
<p>
|
4
|
+
Testing STILL more functions here...
|
5
|
+
</p>
|
5
6
|
|
6
7
|
<p>
|
8
|
+
</p>
|
7
9
|
|
8
|
-
Now... let's try passing a variable to a function. Will this work??
|
9
10
|
<p>
|
11
|
+
Now... let's try passing a variable to a function. Will this work??
|
12
|
+
</p>
|
10
13
|
|
11
|
-
Variable $alpha is regal, which reversed is lager
|
12
14
|
<p>
|
15
|
+
Variable $alpha is regal, which reversed is lager
|
16
|
+
</p>
|
13
17
|
|
14
|
-
That's all.
|
15
18
|
<p>
|
19
|
+
That's all.
|
20
|
+
</p>
|
16
21
|
|
22
|
+
<p>
|
23
|
+
</p>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.60
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
@@ -216,11 +216,7 @@ files:
|
|
216
216
|
- test/snapshots/single_raw_line/expected-output.txt
|
217
217
|
- test/snapshots/single_raw_line/source.lt3
|
218
218
|
- test/snapshots/subset.txt
|
219
|
-
- test/snapshots/system_info/actual-error.txt
|
220
|
-
- test/snapshots/system_info/actual-output.txt
|
221
|
-
- test/snapshots/system_info/err-sdiff.txt
|
222
219
|
- test/snapshots/system_info/expected-error.txt
|
223
|
-
- test/snapshots/system_info/expected-output.txt
|
224
220
|
- test/snapshots/system_info/match-output.txt
|
225
221
|
- test/snapshots/system_info/source.lt3
|
226
222
|
- test/snapshots/table_with_heredocs/expected-error.txt
|
File without changes
|
@@ -1,20 +0,0 @@
|
|
1
|
-
System Info Variables:
|
2
|
-
Hostname: HAL9000
|
3
|
-
Platform: x86_64-darwin22
|
4
|
-
Ruby Version: 3.2.3
|
5
|
-
Livetext Version: 0.9.58
|
6
|
-
</p>
|
7
|
-
|
8
|
-
<p>
|
9
|
-
System Info Functions:
|
10
|
-
Hostname: HAL9000
|
11
|
-
Platform: x86_64-darwin22
|
12
|
-
Ruby Version: 3.2.3
|
13
|
-
Livetext Version: 0.9.58
|
14
|
-
</p>
|
15
|
-
|
16
|
-
<p>
|
17
|
-
Date Formatting Functions:
|
18
|
-
Default: 2025-09-06
|
19
|
-
Days ago: 2025-08-30
|
20
|
-
Days from now: 2025-09-13
|
@@ -1 +0,0 @@
|
|
1
|
-
ACTUAL | EXPECTED
|
@@ -1,20 +0,0 @@
|
|
1
|
-
System Info Variables:
|
2
|
-
Hostname: HAL9000
|
3
|
-
Platform: x86_64-darwin22
|
4
|
-
Ruby Version: 3.2.3
|
5
|
-
Livetext Version: 0.9.58
|
6
|
-
</p>
|
7
|
-
|
8
|
-
<p>
|
9
|
-
System Info Functions:
|
10
|
-
Hostname: HAL9000
|
11
|
-
Platform: x86_64-darwin22
|
12
|
-
Ruby Version: 3.2.3
|
13
|
-
Livetext Version: 0.9.58
|
14
|
-
</p>
|
15
|
-
|
16
|
-
<p>
|
17
|
-
Date Formatting Functions:
|
18
|
-
Default: 2025-09-06
|
19
|
-
Days ago: 2025-08-30
|
20
|
-
Days from now: 2025-09-13
|