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