slight-lang 1.1.0 → 1.1.6
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/.gitignore +1 -1
- data/LICENSE +22 -22
- data/README.md +160 -160
- data/bin/repl/repl.rb +170 -170
- data/bin/repl/utils.rb +29 -29
- data/bin/slight +2 -2
- data/bin/slsh +2 -2
- data/example/component.slight.rb +2 -2
- data/example/core.rb +29 -29
- data/example/custom_engine.rb +37 -37
- data/example/default_engine.rb +31 -28
- data/example/index.slight.rb +28 -28
- data/example/tilt_example.rb +18 -18
- data/lib/slight/config.rb +39 -39
- data/lib/slight/const.rb +13 -0
- data/lib/slight/dsl.rb +168 -169
- data/lib/slight/engine.rb +45 -45
- data/lib/slight/template.rb +38 -38
- data/lib/slight/tilt.rb +25 -26
- data/lib/slight/utils.rb +38 -38
- data/lib/slight.rb +12 -9
- data/slight.gemspec +21 -21
- metadata +4 -3
data/bin/repl/repl.rb
CHANGED
@@ -1,170 +1,170 @@
|
|
1
|
-
$:.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
-
|
3
|
-
require_relative 'utils.rb'
|
4
|
-
require 'slight'
|
5
|
-
@default_engine = Slight::Engine.new
|
6
|
-
@slout = STDOUT
|
7
|
-
|
8
|
-
at_exit{
|
9
|
-
puts "\n--bye--".light_blue
|
10
|
-
@slout.close
|
11
|
-
}
|
12
|
-
|
13
|
-
Signal.trap("INT") do
|
14
|
-
puts "Terminating...".light_blue
|
15
|
-
puts "*** Exit now ***".light_blue
|
16
|
-
exit 1
|
17
|
-
end
|
18
|
-
|
19
|
-
def main
|
20
|
-
print_logo
|
21
|
-
buff = ""
|
22
|
-
loop do
|
23
|
-
print "sl:> "
|
24
|
-
case line = STDIN.readline.sub(/[\n\r]/,'').strip
|
25
|
-
when /^\\/ # build-in commands
|
26
|
-
case line
|
27
|
-
when "\\h"
|
28
|
-
print_help
|
29
|
-
when "\\eg"
|
30
|
-
print_example
|
31
|
-
when "\\q"
|
32
|
-
puts "*** Exit now ***".light_blue
|
33
|
-
exit 0
|
34
|
-
when /\\(v|version|ver)/
|
35
|
-
puts "ver #{Slight::VERSION}\n\n"
|
36
|
-
else
|
37
|
-
puts "Invalid command. type \\h for help.".red
|
38
|
-
end
|
39
|
-
when /^@/
|
40
|
-
if buff.size == 0 then
|
41
|
-
fn = line.sub('@','')
|
42
|
-
puts "LOAD PATH=\"#{fn}\"".light_blue
|
43
|
-
sl_handler(fn, is_file=true)
|
44
|
-
buff.clear
|
45
|
-
puts ""
|
46
|
-
else
|
47
|
-
buff << line << "\n"
|
48
|
-
end
|
49
|
-
when /^>@/
|
50
|
-
fn = line.split('@')[1] || ""
|
51
|
-
case fn.strip
|
52
|
-
when "off"
|
53
|
-
unless @slout == STDOUT
|
54
|
-
puts "spool turned off".light_blue
|
55
|
-
@slout.close
|
56
|
-
@slout = STDOUT
|
57
|
-
else
|
58
|
-
puts "spool was alread turned off".red
|
59
|
-
end
|
60
|
-
when ""
|
61
|
-
puts "spool turned off. output path not set.".red
|
62
|
-
else
|
63
|
-
unless @slout == STDOUT then
|
64
|
-
puts "spool was alread turned on".red
|
65
|
-
else
|
66
|
-
puts "spool turned on".light_blue
|
67
|
-
puts "OUTPUT PATH=\"#{fn}\"".light_blue
|
68
|
-
@slout = File.open(fn, 'w+')
|
69
|
-
end
|
70
|
-
end
|
71
|
-
when ";"
|
72
|
-
if buff.size > 0 then
|
73
|
-
sl_handler(buff)
|
74
|
-
buff.clear
|
75
|
-
@slout.flush #if @slout == STDOUT
|
76
|
-
puts ""
|
77
|
-
end
|
78
|
-
else
|
79
|
-
buff << line << "\n"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def sl_handler(buff, is_file=false)
|
85
|
-
if is_file
|
86
|
-
output = @default_engine.render(buff)
|
87
|
-
else
|
88
|
-
output = @default_engine.render("console",buff)
|
89
|
-
end
|
90
|
-
|
91
|
-
if @slout == STDOUT
|
92
|
-
@slout.puts output.green
|
93
|
-
else
|
94
|
-
@slout.puts output
|
95
|
-
end
|
96
|
-
rescue Exception => err
|
97
|
-
errno = err.message.split(":")[1].to_i - 1
|
98
|
-
buff.split("\n").each_with_index do |line, i|
|
99
|
-
if i == errno then
|
100
|
-
puts "=>#{i+1} #{line}".red
|
101
|
-
else
|
102
|
-
puts " #{i+1} #{line}".yellow
|
103
|
-
end
|
104
|
-
end
|
105
|
-
puts ""
|
106
|
-
STDERR.puts err.message.red
|
107
|
-
#STDERR.puts [err.inspect, err.backtrace.join("\n")].join("\n")
|
108
|
-
end
|
109
|
-
|
110
|
-
def print_help
|
111
|
-
puts " @file => load and compile file dynamically. E.g. @/tmp/page.slight".green
|
112
|
-
puts " >@ => set output. E.g. Open: >@/tmp/output. Turn off: >@off".green
|
113
|
-
puts " \\eg => example".green
|
114
|
-
puts " \\q => exit".green
|
115
|
-
puts " \\v => show version (also: \\ver, \\version)".green
|
116
|
-
puts
|
117
|
-
end
|
118
|
-
|
119
|
-
def print_example
|
120
|
-
eg1_in=%{
|
121
|
-
html do
|
122
|
-
head do
|
123
|
-
titile "My Page"
|
124
|
-
end
|
125
|
-
body do
|
126
|
-
button "btn btn-primary" do
|
127
|
-
"Click me"
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
}
|
132
|
-
|
133
|
-
eg1_out=%{
|
134
|
-
<html>
|
135
|
-
<head>
|
136
|
-
<title>My Page</title>
|
137
|
-
</head>
|
138
|
-
<body>
|
139
|
-
<button class="btn btn-primary">Click me</button>
|
140
|
-
</body>
|
141
|
-
</html>
|
142
|
-
}.green
|
143
|
-
|
144
|
-
eg2_in=%{
|
145
|
-
div("panel panel-lg", css:"color:green"){
|
146
|
-
span{"Hello World"}
|
147
|
-
}
|
148
|
-
}
|
149
|
-
|
150
|
-
eg2_out=%{
|
151
|
-
<div class="panel panel-lg", style="color:green">
|
152
|
-
<span>Hello World</span>
|
153
|
-
</div>
|
154
|
-
}.green
|
155
|
-
|
156
|
-
puts eg1_in
|
157
|
-
puts "=>\n" + eg1_out
|
158
|
-
puts
|
159
|
-
puts eg2_in
|
160
|
-
puts "=>\n" + eg2_out
|
161
|
-
|
162
|
-
end
|
163
|
-
|
164
|
-
def print_logo
|
165
|
-
puts "**************************\n* Welcome to Slight REPL *".green
|
166
|
-
puts "**************************".green
|
167
|
-
puts "\\h for help.\n\n".green
|
168
|
-
end
|
169
|
-
|
170
|
-
main
|
1
|
+
$:.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
+
|
3
|
+
require_relative 'utils.rb'
|
4
|
+
require 'slight'
|
5
|
+
@default_engine = Slight::Engine.new
|
6
|
+
@slout = STDOUT
|
7
|
+
|
8
|
+
at_exit{
|
9
|
+
puts "\n--bye--".light_blue
|
10
|
+
@slout.close
|
11
|
+
}
|
12
|
+
|
13
|
+
Signal.trap("INT") do
|
14
|
+
puts "Terminating...".light_blue
|
15
|
+
puts "*** Exit now ***".light_blue
|
16
|
+
exit 1
|
17
|
+
end
|
18
|
+
|
19
|
+
def main
|
20
|
+
print_logo
|
21
|
+
buff = ""
|
22
|
+
loop do
|
23
|
+
print "sl:> "
|
24
|
+
case line = STDIN.readline.sub(/[\n\r]/,'').strip
|
25
|
+
when /^\\/ # build-in commands
|
26
|
+
case line
|
27
|
+
when "\\h"
|
28
|
+
print_help
|
29
|
+
when "\\eg"
|
30
|
+
print_example
|
31
|
+
when "\\q"
|
32
|
+
puts "*** Exit now ***".light_blue
|
33
|
+
exit 0
|
34
|
+
when /\\(v|version|ver)/
|
35
|
+
puts "ver #{Slight::VERSION}\n\n"
|
36
|
+
else
|
37
|
+
puts "Invalid command. type \\h for help.".red
|
38
|
+
end
|
39
|
+
when /^@/
|
40
|
+
if buff.size == 0 then
|
41
|
+
fn = line.sub('@','')
|
42
|
+
puts "LOAD PATH=\"#{fn}\"".light_blue
|
43
|
+
sl_handler(fn, is_file=true)
|
44
|
+
buff.clear
|
45
|
+
puts ""
|
46
|
+
else
|
47
|
+
buff << line << "\n"
|
48
|
+
end
|
49
|
+
when /^>@/
|
50
|
+
fn = line.split('@')[1] || ""
|
51
|
+
case fn.strip
|
52
|
+
when "off"
|
53
|
+
unless @slout == STDOUT
|
54
|
+
puts "spool turned off".light_blue
|
55
|
+
@slout.close
|
56
|
+
@slout = STDOUT
|
57
|
+
else
|
58
|
+
puts "spool was alread turned off".red
|
59
|
+
end
|
60
|
+
when ""
|
61
|
+
puts "spool turned off. output path not set.".red
|
62
|
+
else
|
63
|
+
unless @slout == STDOUT then
|
64
|
+
puts "spool was alread turned on".red
|
65
|
+
else
|
66
|
+
puts "spool turned on".light_blue
|
67
|
+
puts "OUTPUT PATH=\"#{fn}\"".light_blue
|
68
|
+
@slout = File.open(fn, 'w+')
|
69
|
+
end
|
70
|
+
end
|
71
|
+
when ";"
|
72
|
+
if buff.size > 0 then
|
73
|
+
sl_handler(buff)
|
74
|
+
buff.clear
|
75
|
+
@slout.flush #if @slout == STDOUT
|
76
|
+
puts ""
|
77
|
+
end
|
78
|
+
else
|
79
|
+
buff << line << "\n"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def sl_handler(buff, is_file=false)
|
85
|
+
if is_file
|
86
|
+
output = @default_engine.render(buff)
|
87
|
+
else
|
88
|
+
output = @default_engine.render("console",buff)
|
89
|
+
end
|
90
|
+
|
91
|
+
if @slout == STDOUT
|
92
|
+
@slout.puts output.green
|
93
|
+
else
|
94
|
+
@slout.puts output
|
95
|
+
end
|
96
|
+
rescue Exception => err
|
97
|
+
errno = err.message.split(":")[1].to_i - 1
|
98
|
+
buff.split("\n").each_with_index do |line, i|
|
99
|
+
if i == errno then
|
100
|
+
puts "=>#{i+1} #{line}".red
|
101
|
+
else
|
102
|
+
puts " #{i+1} #{line}".yellow
|
103
|
+
end
|
104
|
+
end
|
105
|
+
puts ""
|
106
|
+
STDERR.puts err.message.red
|
107
|
+
#STDERR.puts [err.inspect, err.backtrace.join("\n")].join("\n")
|
108
|
+
end
|
109
|
+
|
110
|
+
def print_help
|
111
|
+
puts " @file => load and compile file dynamically. E.g. @/tmp/page.slight".green
|
112
|
+
puts " >@ => set output. E.g. Open: >@/tmp/output. Turn off: >@off".green
|
113
|
+
puts " \\eg => example".green
|
114
|
+
puts " \\q => exit".green
|
115
|
+
puts " \\v => show version (also: \\ver, \\version)".green
|
116
|
+
puts
|
117
|
+
end
|
118
|
+
|
119
|
+
def print_example
|
120
|
+
eg1_in=%{
|
121
|
+
html do
|
122
|
+
head do
|
123
|
+
titile "My Page"
|
124
|
+
end
|
125
|
+
body do
|
126
|
+
button "btn btn-primary" do
|
127
|
+
"Click me"
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
}
|
132
|
+
|
133
|
+
eg1_out=%{
|
134
|
+
<html>
|
135
|
+
<head>
|
136
|
+
<title>My Page</title>
|
137
|
+
</head>
|
138
|
+
<body>
|
139
|
+
<button class="btn btn-primary">Click me</button>
|
140
|
+
</body>
|
141
|
+
</html>
|
142
|
+
}.green
|
143
|
+
|
144
|
+
eg2_in=%{
|
145
|
+
div("panel panel-lg", css:"color:green"){
|
146
|
+
span{"Hello World"}
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
eg2_out=%{
|
151
|
+
<div class="panel panel-lg", style="color:green">
|
152
|
+
<span>Hello World</span>
|
153
|
+
</div>
|
154
|
+
}.green
|
155
|
+
|
156
|
+
puts eg1_in
|
157
|
+
puts "=>\n" + eg1_out
|
158
|
+
puts
|
159
|
+
puts eg2_in
|
160
|
+
puts "=>\n" + eg2_out
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
def print_logo
|
165
|
+
puts "**************************\n* Welcome to Slight REPL *".green
|
166
|
+
puts "**************************".green
|
167
|
+
puts "\\h for help.\n\n".green
|
168
|
+
end
|
169
|
+
|
170
|
+
main
|
data/bin/repl/utils.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
# from stack overflow
|
2
|
-
class String
|
3
|
-
# colorization
|
4
|
-
def colorize(color_code); "\e[#{color_code}m#{self}\e[0m"; end
|
5
|
-
def light_blue; "\e[36m#{self}\e[0m"; end
|
6
|
-
def black; "\e[30m#{self}\e[0m"; end
|
7
|
-
def red; "\e[31m#{self}\e[0m"; end
|
8
|
-
def green; "\e[32m#{self}\e[0m"; end
|
9
|
-
def yellow; "\e[33m#{self}\e[0m"; end
|
10
|
-
def blue; "\e[34m#{self}\e[0m"; end
|
11
|
-
def magenta; "\e[35m#{self}\e[0m"; end
|
12
|
-
def cyan; "\e[36m#{self}\e[0m"; end
|
13
|
-
def gray; "\e[37m#{self}\e[0m"; end
|
14
|
-
|
15
|
-
def bg_black; "\e[40m#{self}\e[0m"; end
|
16
|
-
def bg_red; "\e[41m#{self}\e[0m"; end
|
17
|
-
def bg_green; "\e[42m#{self}\e[0m"; end
|
18
|
-
def bg_brown; "\e[43m#{self}\e[0m"; end
|
19
|
-
def bg_blue; "\e[44m#{self}\e[0m"; end
|
20
|
-
def bg_magenta; "\e[45m#{self}\e[0m"; end
|
21
|
-
def bg_cyan; "\e[46m#{self}\e[0m"; end
|
22
|
-
def bg_gray; "\e[47m#{self}\e[0m"; end
|
23
|
-
|
24
|
-
def bold; "\e[1m#{self}\e[22m"; end
|
25
|
-
def italic; "\e[3m#{self}\e[23m"; end
|
26
|
-
def underline; "\e[4m#{self}\e[24m"; end
|
27
|
-
def blink; "\e[5m#{self}\e[25m"; end
|
28
|
-
def reverse_color; "\e[7m#{self}\e[27m"; end
|
29
|
-
end
|
1
|
+
# from stack overflow
|
2
|
+
class String
|
3
|
+
# colorization
|
4
|
+
def colorize(color_code); "\e[#{color_code}m#{self}\e[0m"; end
|
5
|
+
def light_blue; "\e[36m#{self}\e[0m"; end
|
6
|
+
def black; "\e[30m#{self}\e[0m"; end
|
7
|
+
def red; "\e[31m#{self}\e[0m"; end
|
8
|
+
def green; "\e[32m#{self}\e[0m"; end
|
9
|
+
def yellow; "\e[33m#{self}\e[0m"; end
|
10
|
+
def blue; "\e[34m#{self}\e[0m"; end
|
11
|
+
def magenta; "\e[35m#{self}\e[0m"; end
|
12
|
+
def cyan; "\e[36m#{self}\e[0m"; end
|
13
|
+
def gray; "\e[37m#{self}\e[0m"; end
|
14
|
+
|
15
|
+
def bg_black; "\e[40m#{self}\e[0m"; end
|
16
|
+
def bg_red; "\e[41m#{self}\e[0m"; end
|
17
|
+
def bg_green; "\e[42m#{self}\e[0m"; end
|
18
|
+
def bg_brown; "\e[43m#{self}\e[0m"; end
|
19
|
+
def bg_blue; "\e[44m#{self}\e[0m"; end
|
20
|
+
def bg_magenta; "\e[45m#{self}\e[0m"; end
|
21
|
+
def bg_cyan; "\e[46m#{self}\e[0m"; end
|
22
|
+
def bg_gray; "\e[47m#{self}\e[0m"; end
|
23
|
+
|
24
|
+
def bold; "\e[1m#{self}\e[22m"; end
|
25
|
+
def italic; "\e[3m#{self}\e[23m"; end
|
26
|
+
def underline; "\e[4m#{self}\e[24m"; end
|
27
|
+
def blink; "\e[5m#{self}\e[25m"; end
|
28
|
+
def reverse_color; "\e[7m#{self}\e[27m"; end
|
29
|
+
end
|
data/bin/slight
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require_relative '../example/default_engine.rb'
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require_relative '../example/default_engine.rb'
|
data/bin/slsh
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require_relative 'repl/repl.rb'
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require_relative 'repl/repl.rb'
|
data/example/component.slight.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
button "btn btn-success btn-lg" do; "submit"; end
|
2
|
-
layout_yield("#{File.dirname(__FILE__)}/component.slight.rb")
|
1
|
+
button "btn btn-success btn-lg" do; "submit"; end
|
2
|
+
layout_yield("#{File.dirname(__FILE__)}/component.slight.rb")
|
data/example/core.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
$:.unshift File.expand_path('../../lib', __FILE__)
|
2
|
-
require 'slight/dsl'
|
3
|
-
|
4
|
-
module Slight
|
5
|
-
class DSL
|
6
|
-
def run
|
7
|
-
doctype :html
|
8
|
-
html do
|
9
|
-
head do
|
10
|
-
title "Example"
|
11
|
-
use "/css/bootstrap.css"
|
12
|
-
use "/script/jquery.js"
|
13
|
-
use "/script/angular.js"
|
14
|
-
end
|
15
|
-
body do
|
16
|
-
div "panel" do
|
17
|
-
nav "nav nav-pill", id:"NavMenu", css:"color: red" do
|
18
|
-
img! src:"/images/icon1.png"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
br
|
22
|
-
hr
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
Slight::DSL.new(STDOUT).run
|
1
|
+
$:.unshift File.expand_path('../../lib', __FILE__)
|
2
|
+
require 'slight/dsl'
|
3
|
+
|
4
|
+
module Slight
|
5
|
+
class DSL
|
6
|
+
def run
|
7
|
+
doctype :html
|
8
|
+
html do
|
9
|
+
head do
|
10
|
+
title "Example"
|
11
|
+
use "/css/bootstrap.css"
|
12
|
+
use "/script/jquery.js"
|
13
|
+
use "/script/angular.js"
|
14
|
+
end
|
15
|
+
body do
|
16
|
+
div "panel" do
|
17
|
+
nav "nav nav-pill", id:"NavMenu", css:"color: red" do
|
18
|
+
img! src:"/images/icon1.png"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
br
|
22
|
+
hr
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
Slight::DSL.new(STDOUT).run
|
data/example/custom_engine.rb
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
require 'slight/config'
|
2
|
-
require 'slight/engine'
|
3
|
-
|
4
|
-
module Slight
|
5
|
-
class PrettyRender < Filter
|
6
|
-
def self.do(src_data); end
|
7
|
-
end
|
8
|
-
|
9
|
-
class PrettyOutput < Filter
|
10
|
-
end
|
11
|
-
|
12
|
-
conf = Slight::Configuration.new do |c|
|
13
|
-
c.use PrettyRender
|
14
|
-
c.use PrettyOutput, :after
|
15
|
-
#c.set :pretty_html, true
|
16
|
-
end
|
17
|
-
|
18
|
-
custom_engine = Slight::Engine.new(conf)
|
19
|
-
io_out = STDOUT
|
20
|
-
|
21
|
-
at_exit{
|
22
|
-
io_out.close
|
23
|
-
}
|
24
|
-
|
25
|
-
begin
|
26
|
-
raise IOError, "source file was not given." if ARGV.length == 0
|
27
|
-
src_file = ARGV[0]
|
28
|
-
io_out = File.open("#{ARGV[1]}", 'w') if ARGV.size == 2
|
29
|
-
io_out.puts default_engine.render(src_file)
|
30
|
-
rescue Exception => err
|
31
|
-
STDERR.puts err.message
|
32
|
-
STDERR.puts [err.inspect, err.backtrace.join("\n")].join("\n")
|
33
|
-
exit 1
|
34
|
-
end
|
35
|
-
|
36
|
-
exit 0
|
37
|
-
end
|
1
|
+
require 'slight/config'
|
2
|
+
require 'slight/engine'
|
3
|
+
|
4
|
+
module Slight
|
5
|
+
class PrettyRender < Filter
|
6
|
+
def self.do(src_data); end
|
7
|
+
end
|
8
|
+
|
9
|
+
class PrettyOutput < Filter
|
10
|
+
end
|
11
|
+
|
12
|
+
conf = Slight::Configuration.new do |c|
|
13
|
+
c.use PrettyRender
|
14
|
+
c.use PrettyOutput, :after
|
15
|
+
#c.set :pretty_html, true
|
16
|
+
end
|
17
|
+
|
18
|
+
custom_engine = Slight::Engine.new(conf)
|
19
|
+
io_out = STDOUT
|
20
|
+
|
21
|
+
at_exit{
|
22
|
+
io_out.close
|
23
|
+
}
|
24
|
+
|
25
|
+
begin
|
26
|
+
raise IOError, "source file was not given." if ARGV.length == 0
|
27
|
+
src_file = ARGV[0]
|
28
|
+
io_out = File.open("#{ARGV[1]}", 'w') if ARGV.size == 2
|
29
|
+
io_out.puts default_engine.render(src_file)
|
30
|
+
rescue Exception => err
|
31
|
+
STDERR.puts err.message
|
32
|
+
STDERR.puts [err.inspect, err.backtrace.join("\n")].join("\n")
|
33
|
+
exit 1
|
34
|
+
end
|
35
|
+
|
36
|
+
exit 0
|
37
|
+
end
|
data/example/default_engine.rb
CHANGED
@@ -1,28 +1,31 @@
|
|
1
|
-
$:.unshift File.expand_path('../../lib', __FILE__)
|
2
|
-
require 'slight'
|
3
|
-
|
4
|
-
module Slight
|
5
|
-
default_engine = Slight::Engine.new
|
6
|
-
io_out = STDOUT
|
7
|
-
|
8
|
-
at_exit{
|
9
|
-
io_out.close
|
10
|
-
}
|
11
|
-
|
12
|
-
begin
|
13
|
-
if ARGV[0] == "-v" then
|
14
|
-
io_out.puts VERSION
|
15
|
-
else
|
16
|
-
raise IOError, "source file was not given." if ARGV.length == 0
|
17
|
-
src_file = ARGV[0]
|
18
|
-
io_out = File.open("#{ARGV[1]}", 'w') if ARGV.size == 2
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
1
|
+
$:.unshift File.expand_path('../../lib', __FILE__)
|
2
|
+
require 'slight'
|
3
|
+
|
4
|
+
module Slight
|
5
|
+
default_engine = Slight::Engine.new
|
6
|
+
io_out = STDOUT
|
7
|
+
|
8
|
+
at_exit{
|
9
|
+
io_out.close
|
10
|
+
}
|
11
|
+
|
12
|
+
begin
|
13
|
+
if ARGV[0] == "-v" then
|
14
|
+
io_out.puts VERSION
|
15
|
+
else
|
16
|
+
raise IOError, "source file was not given." if ARGV.length == 0
|
17
|
+
src_file = ARGV[0]
|
18
|
+
io_out = File.open("#{ARGV[1]}", 'w') if ARGV.size == 2
|
19
|
+
buffer = default_engine.render(src_file)
|
20
|
+
if buffer != nil and buffer != "" then
|
21
|
+
io_out.puts buffer
|
22
|
+
end
|
23
|
+
end
|
24
|
+
rescue Exception => err
|
25
|
+
STDERR.puts "[Slight]" + err.message
|
26
|
+
#STDERR.puts [err.inspect, err.backtrace.join("\n")].join("\n")
|
27
|
+
exit 1
|
28
|
+
end
|
29
|
+
|
30
|
+
exit 0
|
31
|
+
end
|
data/example/index.slight.rb
CHANGED
@@ -1,28 +1,28 @@
|
|
1
|
-
doctype :html
|
2
|
-
html do
|
3
|
-
head do
|
4
|
-
title "Example"
|
5
|
-
use "resource/css/bootstrap.css"
|
6
|
-
use "resource/script/jquery.js"
|
7
|
-
end
|
8
|
-
body do
|
9
|
-
div "panel" do
|
10
|
-
nav "nav nav-pill", id:"NavMenu", css:"color: red" do
|
11
|
-
img! src:"resource/images/icon1.png"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
div css:'border 1 bold blue' do
|
15
|
-
layout_yield("#{File.dirname(__FILE__)}/component.slight.rb")
|
16
|
-
end
|
17
|
-
div css:'border 1 bold green' do
|
18
|
-
layout_yield("#{File.dirname(__FILE__)}/component.slight.rb")
|
19
|
-
end
|
20
|
-
br
|
21
|
-
end
|
22
|
-
|
23
|
-
js %{
|
24
|
-
let a =1;
|
25
|
-
console.log(a);
|
26
|
-
}
|
27
|
-
|
28
|
-
end
|
1
|
+
doctype :html
|
2
|
+
html do
|
3
|
+
head do
|
4
|
+
title "Example"
|
5
|
+
use "resource/css/bootstrap.css"
|
6
|
+
use "resource/script/jquery.js"
|
7
|
+
end
|
8
|
+
body do
|
9
|
+
div "panel" do
|
10
|
+
nav "nav nav-pill", id:"NavMenu", css:"color: red" do
|
11
|
+
img! src:"resource/images/icon1.png"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
div css:'border 1 bold blue' do
|
15
|
+
layout_yield("#{File.dirname(__FILE__)}/component.slight.rb")
|
16
|
+
end
|
17
|
+
div css:'border 1 bold green' do
|
18
|
+
layout_yield("#{File.dirname(__FILE__)}/component.slight.rb")
|
19
|
+
end
|
20
|
+
br
|
21
|
+
end
|
22
|
+
|
23
|
+
js %{
|
24
|
+
let a =1;
|
25
|
+
console.log(a);
|
26
|
+
}
|
27
|
+
|
28
|
+
end
|