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.
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'
@@ -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
@@ -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
@@ -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
- io_out.puts default_engine.render(src_file)
20
- end
21
- rescue Exception => err
22
- STDERR.puts err.message
23
- #STDERR.puts [err.inspect, err.backtrace.join("\n")].join("\n")
24
- exit 1
25
- end
26
-
27
- exit 0
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
@@ -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