zorglub 0.1.0 → 0.1.2
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/Gemfile +1 -1
- data/Gemfile.lock +35 -36
- data/lib/zorglub/app.rb +108 -106
- data/lib/zorglub/engines/file.rb +8 -12
- data/lib/zorglub/engines/haml.rb +13 -17
- data/lib/zorglub/engines/sass.rb +12 -16
- data/lib/zorglub/node.rb +273 -273
- data/lib/zorglub/rack_session.rb +4 -6
- data/lib/zorglub/session.rb +142 -146
- data/lib/zorglub.rb +1 -4
- data/spec/app_spec.rb +26 -32
- data/spec/data/view/node0/engines.haml +1 -1
- data/spec/node_spec.rb +298 -304
- data/spec/spec_helper.rb +189 -171
- metadata +6 -7
data/spec/spec_helper.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
3
|
begin
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
require 'simplecov'
|
5
|
+
SimpleCov.start do
|
6
|
+
add_filter 'spec'
|
7
|
+
end
|
8
8
|
rescue LoadError
|
9
9
|
end
|
10
10
|
|
11
11
|
begin
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
require 'coveralls'
|
13
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new [
|
14
|
+
SimpleCov::Formatter::HTMLFormatter,
|
15
|
+
Coveralls::SimpleCov::Formatter
|
16
|
+
]
|
17
17
|
rescue LoadError
|
18
18
|
end
|
19
19
|
|
@@ -24,206 +24,224 @@ require 'zorglub/engines/file'
|
|
24
24
|
require 'zorglub/engines/haml'
|
25
25
|
require 'zorglub/engines/sass'
|
26
26
|
|
27
|
-
HASH_PROC =
|
28
|
-
STATIC_PROC =
|
29
|
-
RENDER_PROC =
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
27
|
+
HASH_PROC = proc { |path, obj| { path: path, layout: obj.layout, view: obj.view, args: obj.args, map: obj.map }.to_yaml }
|
28
|
+
STATIC_PROC = proc { |_path, obj| ["VAL #{obj.value}", 'text/static'] }
|
29
|
+
RENDER_PROC = proc { |_path, obj|
|
30
|
+
case obj.state
|
31
|
+
when :layout
|
32
|
+
"layout_start #{obj.content} layout_end"
|
33
|
+
when :view
|
34
|
+
['view_content', 'text/view']
|
35
|
+
when :partial
|
36
|
+
['partial_content', 'text/partial']
|
37
|
+
else
|
38
|
+
raise Exception.new
|
39
|
+
end
|
40
40
|
}
|
41
41
|
APP_ROOT = File.join Dir.pwd, 'spec', 'data'
|
42
42
|
|
43
43
|
class Zorglub::Node
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
44
|
+
def self.my_call(uri)
|
45
|
+
call({ 'PATH_INFO' => uri })
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.my_call_i(uri)
|
49
|
+
call({ 'PATH_INFO' => uri }).body[0].to_i
|
50
|
+
end
|
50
51
|
end
|
51
52
|
|
52
53
|
class Temp < Zorglub::Node
|
53
54
|
end
|
54
55
|
|
55
56
|
class Node0 < Zorglub::Node
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
57
|
+
# default
|
58
|
+
def index
|
59
|
+
html
|
60
|
+
end
|
61
|
+
|
62
|
+
def hello
|
63
|
+
no_layout!
|
64
|
+
'world'
|
65
|
+
end
|
66
|
+
|
67
|
+
def with_2args(arg1, arg2); end
|
68
|
+
|
69
|
+
def do_render
|
70
|
+
engine! 'real'
|
71
|
+
end
|
72
|
+
|
73
|
+
def do_content_type
|
74
|
+
engine! 'real'
|
75
|
+
response.headers['Content-Type'] = 'text/mine'
|
76
|
+
end
|
77
|
+
|
78
|
+
def do_partial(_arg1, _arg2)
|
79
|
+
engine! 'real'
|
80
|
+
end
|
81
|
+
|
82
|
+
def other_view
|
83
|
+
engine! 'real'
|
84
|
+
view! r('do_partial')
|
85
|
+
end
|
86
|
+
|
87
|
+
def do_redirect
|
88
|
+
redirect r(:do_partial, 1, 2, 3)
|
89
|
+
end
|
90
|
+
|
91
|
+
def xml_file
|
92
|
+
no_layout!
|
93
|
+
engine! :file
|
94
|
+
ext! 'xml'
|
95
|
+
mime! 'application/xml'
|
96
|
+
end
|
97
|
+
|
98
|
+
def plain_file
|
99
|
+
no_layout!
|
100
|
+
engine! :file
|
101
|
+
ext! 'txt'
|
102
|
+
mime! 'text/plain'
|
103
|
+
end
|
104
|
+
|
105
|
+
def no_view_no_layout
|
106
|
+
no_view!
|
107
|
+
no_layout!
|
108
|
+
'hello world'
|
109
|
+
end
|
110
|
+
|
111
|
+
def engines(name)
|
112
|
+
no_layout!
|
113
|
+
case name
|
114
|
+
when 'haml'
|
115
|
+
@name = '<i>world</i>'
|
116
|
+
engine! :haml
|
117
|
+
when 'sass'
|
118
|
+
engine! :sass
|
119
|
+
end
|
120
|
+
end
|
109
121
|
end
|
110
122
|
|
111
123
|
class Node1 < Zorglub::Node
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
124
|
+
layout! 'layout-1'
|
125
|
+
engine! 'engine-1'
|
126
|
+
def index
|
127
|
+
layout! 'main'
|
128
|
+
engine! 'engine-2'
|
129
|
+
end
|
118
130
|
end
|
119
131
|
|
120
132
|
class Node2 < Node1
|
121
|
-
|
133
|
+
# inherited from Node1
|
122
134
|
end
|
123
135
|
|
124
136
|
class Node3 < Zorglub::Node
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
end
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
137
|
+
@before = 0
|
138
|
+
@after = 0
|
139
|
+
class << self
|
140
|
+
attr_accessor :before, :after
|
141
|
+
|
142
|
+
def post(_obj)
|
143
|
+
@after += 1
|
144
|
+
end
|
145
|
+
end
|
146
|
+
before_all do |_node|
|
147
|
+
Node3.before += 1
|
148
|
+
end
|
149
|
+
after_all Node3.method(:post)
|
150
|
+
layout! 'layout-2'
|
151
|
+
engine! 'engine-2'
|
152
|
+
def index
|
153
|
+
Node3.before - Node3.after
|
154
|
+
end
|
155
|
+
|
156
|
+
def do_partial(_arg1, _arg2)
|
157
|
+
view! Node0.r('do_partial')
|
158
|
+
engine! 'real'
|
159
|
+
end
|
146
160
|
end
|
147
161
|
|
148
162
|
class Node8 < Node3
|
149
163
|
end
|
150
164
|
|
151
165
|
class Node4 < Zorglub::Node
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
166
|
+
no_layout!
|
167
|
+
cli_val :js, 'js0'
|
168
|
+
cli_val :js, 'js1'
|
169
|
+
|
170
|
+
def index
|
171
|
+
cli_val(:js).to_yaml
|
172
|
+
end
|
173
|
+
|
174
|
+
def more
|
175
|
+
cli_val :js, 'js2'
|
176
|
+
cli_val(:js).to_yaml
|
177
|
+
end
|
162
178
|
end
|
163
179
|
|
164
180
|
class Node5 < Node4
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
181
|
+
cli_val :js, 'js3'
|
182
|
+
cli_val :css, 'css0', 'css1'
|
183
|
+
# no_layout! inherited from Node4
|
184
|
+
def index
|
185
|
+
js = cli_val(:js, 'jsx')
|
186
|
+
cli_val(:css, 'css0', 'css1', 'css2')
|
187
|
+
css = cli_val :css
|
188
|
+
js.concat(css).to_yaml
|
189
|
+
end
|
174
190
|
end
|
175
191
|
|
176
192
|
class Node6 < Zorglub::Node
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
193
|
+
@static_cpt = 0
|
194
|
+
class << self
|
195
|
+
attr_accessor :static_cpt
|
196
|
+
end
|
197
|
+
attr_reader :value
|
198
|
+
|
199
|
+
static! true, 5
|
200
|
+
def no_static
|
201
|
+
static! false
|
202
|
+
engine! 'static'
|
203
|
+
view! Node0.r('do_render')
|
204
|
+
Node6.static_cpt += 1
|
205
|
+
@value = Node6.static_cpt
|
206
|
+
end
|
207
|
+
|
208
|
+
def do_static
|
209
|
+
engine! 'static'
|
210
|
+
view! Node0.r('do_render')
|
211
|
+
Node6.static_cpt += 1
|
212
|
+
@value = Node6.static_cpt
|
213
|
+
end
|
196
214
|
end
|
197
215
|
|
198
216
|
class Node7 < Zorglub::Node
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
217
|
+
layout_base_path! File.join APP_ROOT, 'alt', 'layout'
|
218
|
+
view_base_path! File.join APP_ROOT, 'alt'
|
219
|
+
def view_path
|
220
|
+
view! 'do_render'
|
221
|
+
end
|
204
222
|
end
|
205
223
|
|
206
224
|
APP = Zorglub::App.new do
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
+
register_engine! :file, nil, Zorglub::Engines::File.method(:proc)
|
226
|
+
register_engine! :haml, 'haml', Zorglub::Engines::Haml.method(:proc)
|
227
|
+
register_engine! :sass, 'scss', Zorglub::Engines::Sass.method(:proc)
|
228
|
+
register_engine! 'default', nil, HASH_PROC
|
229
|
+
register_engine! 'engine-1', 'spec', HASH_PROC
|
230
|
+
register_engine! 'engine-2', 'spec', HASH_PROC
|
231
|
+
register_engine! 'real', nil, RENDER_PROC
|
232
|
+
register_engine! 'static', nil, STATIC_PROC
|
233
|
+
opt! :root, APP_ROOT
|
234
|
+
opt! :engine, 'default'
|
235
|
+
map '/node0', Node0
|
236
|
+
map '/node1', Node1
|
237
|
+
map '/node3', Node3
|
238
|
+
map '/node4', Node4
|
239
|
+
map '/node5', Node5
|
240
|
+
map '/node6', Node6
|
241
|
+
map '/node7', Node7
|
242
|
+
map '/node8', Node8
|
225
243
|
end
|
226
244
|
|
227
245
|
class Node2
|
228
|
-
|
246
|
+
map APP, '/node2'
|
229
247
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zorglub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jérémy Zurcher
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: This is a very stripped down version of innate.
|
14
14
|
email:
|
@@ -59,7 +59,7 @@ files:
|
|
59
59
|
homepage: http://github.com/jeremyz/zorglub
|
60
60
|
licenses: []
|
61
61
|
metadata: {}
|
62
|
-
post_install_message:
|
62
|
+
post_install_message:
|
63
63
|
rdoc_options: []
|
64
64
|
require_paths:
|
65
65
|
- lib
|
@@ -74,9 +74,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
requirements: []
|
77
|
-
|
78
|
-
|
79
|
-
signing_key:
|
77
|
+
rubygems_version: 3.4.19
|
78
|
+
signing_key:
|
80
79
|
specification_version: 4
|
81
80
|
summary: a nano web application framework based on rack
|
82
81
|
test_files:
|