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.
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