livetext 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
data/bin/livetext CHANGED
@@ -4,28 +4,31 @@ require_relative '../lib/livetext'
4
4
 
5
5
  def handle_ltx(src)
6
6
  abort "Unknown file extension" unless src =~ /.ltx$/
7
- x = Livetext.new
8
- x.process_file(src)
9
7
  end
10
8
 
11
9
  # Main
12
10
 
11
+ x = Livetext.new
12
+
13
13
  case ARGV.first
14
14
  when "-v", "--version"
15
15
  puts "#{Livetext::VERSION}\n "
16
- exit
16
+ when "-t", "--test"
17
+ dir = File.dirname(__FILE__)
18
+ system("ruby #{dir}/../test/test.rb")
19
+ when "-s", "--stdin"
20
+ src = STDIN.read
21
+ x.process(src)
17
22
  when nil
18
23
  puts <<-EOF
19
24
  Usage:
20
25
  livetext -v
21
26
  livetext --version
22
27
  livetext filename
23
-
24
28
  EOF
25
- exit
26
- else
29
+ puts
30
+ when Object
27
31
  src = ARGV.first
32
+ x.process_file(src)
28
33
  end
29
34
 
30
- handle_ltx(src)
31
-
data/dsl/markdown.rb CHANGED
@@ -13,6 +13,14 @@ def h4; _puts "#### #{@_data}"; end
13
13
  def h5; _puts "##### #{@_data}"; end
14
14
  def h6; _puts "###### #{@_data}"; end
15
15
 
16
+ def title
17
+ h1
18
+ end
19
+
20
+ def section
21
+ h3
22
+ end
23
+
16
24
  def bq # block quote
17
25
  _body {|line| _puts "> #{line}" }
18
26
  end
@@ -23,13 +31,13 @@ def list
23
31
  _body {|line| _puts " * #{line}" }
24
32
  end
25
33
 
26
- alias nlist olist
27
-
28
34
  def olist # Doesn't handle paragraphs yet
29
35
  n = 0
30
36
  _body do |line|
31
37
  n += 1
32
- _puts "#{n}. #{line}"
38
+ _puts "#{n}. #{_formatting(line)}"
33
39
  end
34
40
  end
35
41
 
42
+ alias nlist olist
43
+
data/dsl/tutorial.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  require 'cgi'
2
2
 
3
3
  def title
4
- puts "<center><h2>#{@_data}</h2></center>"
4
+ h1
5
5
  end
6
6
 
7
7
  def section
8
- puts "<br>" * 2 + "<b><font size=+1>#{@_data}</font></b>" + "<br>"
8
+ h3
9
9
  end
10
10
 
11
11
  def code
@@ -18,33 +18,6 @@ def rx(str)
18
18
  ::Regexp.compile(::Regexp.escape(str))
19
19
  end
20
20
 
21
- def list
22
- puts "<ul>"
23
- _body {|line| puts "<li>#{_formatting(line)}</li>" }
24
- _puts "</ul>"
25
- end
26
-
27
- def nlist
28
- puts "<ol>"
29
- _body {|line| puts "<li>#{_formatting(line)}</li>" }
30
- _puts "</ol>"
31
- end
32
-
33
- def dlist
34
- delim = "~~"
35
- _puts "<table>"
36
- _body do |line|
37
- # @tty.puts "Line = #{line}"
38
- line = _formatting(line)
39
- # @tty.puts "Line = #{line}\n "
40
- term, defn = line.split(delim)
41
- _puts "<tr>"
42
- _puts "<td width=3%><td width=10%>#{term}</td><td>#{defn}</td>"
43
- _puts "</tr>"
44
- end
45
- _puts "</table>"
46
- end
47
-
48
21
  def inout
49
22
  src, out = _args
50
23
  t1 = ::File.readlines(src) rescue (abort "t1 = #{src}")
@@ -52,8 +25,6 @@ def inout
52
25
  # To pacify markdown for README (FIXME later)
53
26
  t1 = t1.map {|x| " " + x.sub(/ +$/,"").gsub(/_/, "\\_") }.join
54
27
  t2 = t2.map {|x| " " + x.sub(/ +$/,"").gsub(/_/, "\\_") }.join
55
- # t1 = ::CGI.escape_html(t1)
56
- # t2 = ::CGI.escape_html(t2)
57
28
 
58
29
  puts <<-HTML
59
30
  <center>
@@ -103,11 +74,9 @@ end
103
74
 
104
75
  def testcase
105
76
  name = _args.first
106
- # _puts "\n<b>Test: <tt>#{name.gsub(/_/, "\\_")}</tt></b><br>"
107
77
  _puts "\n<font size=+1><b>Test: </font><font size=+2><tt>#{name}</tt></font></b></h3><br>"
108
78
  src, exp = "test/testfiles/#{name}/source.ltx", "test/testfiles/#{name}/expected-output.txt"
109
79
  @_args = [src, exp] # Better way to do this??
110
- # inout # Weird - only place I've done this yet.
111
80
  put_table(src, exp)
112
81
  _puts "<br>"
113
82
  end
data/lib/livetext.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class Livetext
2
- VERSION = "0.8.1"
2
+ VERSION = "0.8.2"
3
3
  end
4
4
 
5
5
  require 'fileutils'
@@ -109,8 +109,8 @@ class Livetext
109
109
  end
110
110
 
111
111
  def process_file(fname)
112
- enum = File.readlines(fname).each
113
112
  raise "No such file '#{fname}' to process" unless File.exist?(fname)
113
+ enum = File.readlines(fname).each
114
114
  @main.source(enum, fname, 0)
115
115
  loop do
116
116
  line = @main.nextline
@@ -119,6 +119,16 @@ class Livetext
119
119
  end
120
120
  end
121
121
 
122
+ def process(text)
123
+ enum = text.each_line
124
+ @main.source(enum, "STDIN", 0)
125
+ loop do
126
+ line = @main.nextline
127
+ break if line.nil?
128
+ process_line(line)
129
+ end
130
+ end
131
+
122
132
  def rx(str, space=nil)
123
133
  Regexp.compile("^" + Regexp.escape(str) + "#{space}")
124
134
  end
data/lib/standard.rb CHANGED
@@ -239,7 +239,7 @@ module Livetext::Standard
239
239
  end
240
240
 
241
241
  def dlist
242
- delim = "~~"
242
+ delim = _args.first
243
243
  _puts "<table>"
244
244
  _body do |line|
245
245
  line = _formatting(line)
data/test/test.rb CHANGED
@@ -26,8 +26,12 @@ class TestingLivetext < MiniTest::Test
26
26
  define_method("test_formatting_#{i}") do
27
27
  x = FormatLine.new
28
28
  actual = x.parse(src)
29
- # raise "Hello?"
30
- assert_equal(exp, actual, msg)
29
+ if exp[0] == "/" # regex!
30
+ exp = Regexp.compile(exp[1..-2]) # skip slashes
31
+ assert_match(exp, actual, msg)
32
+ else
33
+ assert_equal(exp, actual, msg)
34
+ end
31
35
  end
32
36
  end
33
37
 
@@ -274,3 +274,11 @@ Escape brackets inside ~
274
274
  There are brackets ~[\[\]] here
275
275
  There are brackets <strike>[]</strike> here
276
276
 
277
+ Check output of $$date
278
+ Today is $$date, I guess
279
+ /Today is \d\d\d\d-\d\d-\d\d, I guess/
280
+
281
+ Check output of $$time
282
+ Tick tock, it's $$time right now
283
+ /Tick tock, it's \d\d:\d\d:\d\d right now/
284
+
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.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton