uzuuzu-core 0.0.7 → 0.0.8
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/VERSION +1 -1
- data/lib/uzuuzu/helper/controller.rb +32 -43
- data/lib/uzuuzu/helper/jquery.rb +9 -0
- data/lib/uzuuzu/helper/localize.rb +0 -4
- data/lib/uzuuzu/helper/renderer.rb +17 -10
- data/lib/uzuuzu/helper/route.rb +3 -4
- data/lib/uzuuzu/helper/xhtml.rb +17 -17
- data/lib/uzuuzu/wrapper/application.rb +75 -48
- data/lib/uzuuzu/wrapper/controller.rb +14 -4
- data/lib/uzuuzu/wrapper/environments.rb +1 -1
- data/lib/uzuuzu/wrapper/helper.rb +10 -1
- data/uzuuzu-core.gemspec +2 -3
- metadata +3 -4
- data/lib/uzuuzu/helper/fixture.rb +0 -10
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
@@ -13,77 +13,64 @@ module UzuUzu
|
|
13
13
|
#
|
14
14
|
#
|
15
15
|
def application
|
16
|
-
|
16
|
+
::UzuUzu.current
|
17
17
|
end
|
18
|
+
|
19
|
+
#
|
20
|
+
#
|
21
|
+
#
|
22
|
+
def controller
|
23
|
+
::UzuUzu::Controller.current
|
24
|
+
end
|
25
|
+
|
18
26
|
#
|
19
27
|
#
|
20
28
|
#
|
21
29
|
def request
|
22
|
-
|
30
|
+
::UzuUzu::Request.current
|
23
31
|
end
|
24
|
-
|
32
|
+
|
25
33
|
#
|
26
34
|
#
|
27
35
|
#
|
28
36
|
def response
|
29
|
-
|
37
|
+
::UzuUzu::Response.current
|
30
38
|
end
|
31
39
|
|
32
40
|
#
|
33
41
|
#
|
34
42
|
#
|
35
|
-
def
|
36
|
-
|
43
|
+
def helper
|
44
|
+
::UzuUzu::Helper.current
|
37
45
|
end
|
38
46
|
|
39
47
|
#
|
40
48
|
#
|
41
49
|
#
|
42
|
-
def
|
43
|
-
|
50
|
+
def action
|
51
|
+
Thread.current[:action]
|
44
52
|
end
|
45
53
|
|
46
54
|
#
|
47
55
|
#
|
48
56
|
#
|
49
|
-
def
|
50
|
-
|
57
|
+
def query
|
58
|
+
Thread.current[:query]
|
51
59
|
end
|
52
60
|
|
53
61
|
#
|
54
62
|
#
|
55
63
|
#
|
56
|
-
def
|
57
|
-
|
64
|
+
def route
|
65
|
+
Thread.current[:route]
|
58
66
|
end
|
59
|
-
|
67
|
+
|
60
68
|
#
|
61
69
|
#
|
62
70
|
#
|
63
71
|
def session
|
64
72
|
request.session
|
65
73
|
end
|
66
|
-
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
def logger
|
71
|
-
UzuUzu.logger
|
72
|
-
end
|
73
|
-
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
77
|
-
def memcache
|
78
|
-
UzuUzu.memcache
|
79
|
-
end
|
80
|
-
|
81
|
-
#
|
82
|
-
#
|
83
|
-
#
|
84
|
-
def remote_user
|
85
|
-
nil
|
86
|
-
end
|
87
74
|
|
88
75
|
#
|
89
76
|
#
|
@@ -99,15 +86,6 @@ module UzuUzu
|
|
99
86
|
Rack::Utils.unescape(s)
|
100
87
|
end
|
101
88
|
|
102
|
-
#
|
103
|
-
#
|
104
|
-
#
|
105
|
-
def admin?
|
106
|
-
if remote_user
|
107
|
-
remote_user.admin?
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
89
|
#
|
112
90
|
#
|
113
91
|
#
|
@@ -130,6 +108,17 @@ module UzuUzu
|
|
130
108
|
return "" if query_string.blank?
|
131
109
|
"?#{query_string.join('&')}"
|
132
110
|
end
|
111
|
+
|
112
|
+
#
|
113
|
+
#
|
114
|
+
#
|
115
|
+
def instance_variable_map(instance)
|
116
|
+
map = {}
|
117
|
+
instance.instance_variables.each do |variable_name|
|
118
|
+
map[variable_name] = instance.instance_variable_get(variable_name)
|
119
|
+
end
|
120
|
+
map
|
121
|
+
end
|
133
122
|
end # Controller
|
134
123
|
end # Helper
|
135
124
|
end # UzuUzu
|
data/lib/uzuuzu/helper/jquery.rb
CHANGED
@@ -3,17 +3,22 @@
|
|
3
3
|
module UzuUzu
|
4
4
|
module Helper
|
5
5
|
module Renderer
|
6
|
-
extend TiltWrapper
|
7
6
|
|
8
7
|
#
|
9
8
|
#
|
10
9
|
#
|
11
|
-
def render_full(
|
12
|
-
_request
|
10
|
+
def render_full(controller_clazz, action, options={})
|
11
|
+
_request = request
|
12
|
+
_response = response
|
13
|
+
_controller = controller
|
14
|
+
_helper = helper
|
15
|
+
_action = action
|
16
|
+
_query = query
|
17
|
+
_route = route
|
13
18
|
browser = ::Rack::MockRequest.new(::UzuUzu.current)
|
14
|
-
_render_response = browser.get
|
19
|
+
_render_response = browser.get(controller.rf(controller_clazz, action, options))
|
15
20
|
_render = _render_response.body.to_s
|
16
|
-
::UzuUzu.current.di_thread(_request, _response, _controller, _action, _query, _route)
|
21
|
+
::UzuUzu.current.di_thread(_request, _response, _controller, _helper, _action, _query, _route)
|
17
22
|
_render
|
18
23
|
end
|
19
24
|
|
@@ -44,8 +49,8 @@ module UzuUzu
|
|
44
49
|
view_path = nil
|
45
50
|
catch(:view_finded) do
|
46
51
|
::Tilt.mappings.each_key do |key|
|
47
|
-
|
48
|
-
_view_path = "#{view_route}#{
|
52
|
+
application.views.each do |view_route|
|
53
|
+
_view_path = "#{view_route}#{controller.route}/#{view}.#{key}"
|
49
54
|
if ::File.file?(_view_path)
|
50
55
|
view_path = _view_path
|
51
56
|
throw :view_finded
|
@@ -75,7 +80,9 @@ module UzuUzu
|
|
75
80
|
#
|
76
81
|
#
|
77
82
|
def render_engine(view_string, engine=::UzuUzu.engine, options={}, locals={}, &block)
|
78
|
-
|
83
|
+
locals ||= {}
|
84
|
+
locals = locals.merge(instance_variable_map(controller))
|
85
|
+
UzuUzu.render_engine(helper, view_string, engine, options, locals, &block)
|
79
86
|
end
|
80
87
|
|
81
88
|
def send_file()
|
@@ -108,14 +115,14 @@ module UzuUzu
|
|
108
115
|
#
|
109
116
|
#
|
110
117
|
def server_error(code=500, options={})
|
111
|
-
redirect
|
118
|
+
redirect controller.rf(UzuUzu::Controller::Index, :error, code)
|
112
119
|
end # error
|
113
120
|
|
114
121
|
#
|
115
122
|
#
|
116
123
|
#
|
117
124
|
def not_found(code=404, options={})
|
118
|
-
redirect
|
125
|
+
redirect controller.rf(UzuUzu::Controller::Index, :error, code)
|
119
126
|
end
|
120
127
|
|
121
128
|
#
|
data/lib/uzuuzu/helper/route.rb
CHANGED
@@ -4,9 +4,8 @@ module UzuUzu
|
|
4
4
|
module Helper
|
5
5
|
module Route
|
6
6
|
def url_for_controller(controller, *args)
|
7
|
-
|
8
|
-
|
9
|
-
app.controllers.each do |root_controller|
|
7
|
+
route_string = request.env['SCRIPT_NAME'].clone
|
8
|
+
application.controllers.each do |root_controller|
|
10
9
|
re = Regexp.compile("^#{root_controller.name}::")
|
11
10
|
if re =~ controller.name
|
12
11
|
path = controller.name.gsub(re, '').gsub(/Controller$/, '').to_const_path
|
@@ -28,7 +27,7 @@ module UzuUzu
|
|
28
27
|
alias :rf :url_for_controller
|
29
28
|
|
30
29
|
def url_for(*args)
|
31
|
-
route_string =
|
30
|
+
route_string = route.clone
|
32
31
|
if args[-1].kind_of?(Hash)
|
33
32
|
query = query_string(args.pop)
|
34
33
|
end
|
data/lib/uzuuzu/helper/xhtml.rb
CHANGED
@@ -3,40 +3,40 @@
|
|
3
3
|
module UzuUzu
|
4
4
|
module Helper
|
5
5
|
module XHtml
|
6
|
+
|
6
7
|
#
|
7
8
|
#
|
8
9
|
#
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
def meta(name, content)
|
11
|
+
"<meta name=\"#{name}\" content=\"#{content}\">"
|
12
|
+
end
|
13
|
+
#
|
14
|
+
#
|
15
|
+
#
|
16
|
+
def css(css_path, media='screen')
|
17
|
+
"<link href=\"#{css_path}\" media=\"#{media}\" rel=\"stylesheet\" type=\"text/css\" />"
|
15
18
|
end
|
16
|
-
|
17
19
|
#
|
18
20
|
#
|
19
21
|
#
|
20
22
|
def css_for(*args)
|
21
|
-
args.map
|
23
|
+
args.map do |css_path|
|
24
|
+
css(css_path)
|
25
|
+
end.join("\n")
|
22
26
|
end
|
23
|
-
|
24
27
|
#
|
25
28
|
#
|
26
29
|
#
|
27
|
-
def js(
|
28
|
-
|
29
|
-
"<script src=\"#{name}\" type=\"text/javascript\"></script>"
|
30
|
-
else
|
31
|
-
"<script src=\"/js/#{name}.js\" type=\"text/javascript\"></script>"
|
32
|
-
end
|
30
|
+
def js(js_path)
|
31
|
+
"<script src=\"#{js_path}\" type=\"text/javascript\"></script>"
|
33
32
|
end
|
34
|
-
|
35
33
|
#
|
36
34
|
#
|
37
35
|
#
|
38
36
|
def js_for(*args)
|
39
|
-
args.map
|
37
|
+
args.map do |js_path|
|
38
|
+
js(js_path)
|
39
|
+
end.join("\n")
|
40
40
|
end
|
41
41
|
|
42
42
|
end
|
@@ -5,7 +5,6 @@ module UzuUzu
|
|
5
5
|
#
|
6
6
|
#
|
7
7
|
class Application
|
8
|
-
|
9
8
|
#
|
10
9
|
attr_accessor :name
|
11
10
|
#
|
@@ -19,6 +18,8 @@ module UzuUzu
|
|
19
18
|
#
|
20
19
|
attr_accessor :after_filters
|
21
20
|
#
|
21
|
+
attr_accessor :dicons
|
22
|
+
#
|
22
23
|
attr_accessor :helpers
|
23
24
|
#
|
24
25
|
attr_accessor :views
|
@@ -27,14 +28,14 @@ module UzuUzu
|
|
27
28
|
#
|
28
29
|
#
|
29
30
|
def self.current
|
30
|
-
Thread.current[:application]
|
31
|
+
::Thread.current[:application]
|
31
32
|
end
|
32
33
|
|
33
34
|
#
|
34
35
|
#
|
35
36
|
#
|
36
37
|
def initialize(options={})
|
37
|
-
Thread.current[:application] = self
|
38
|
+
::Thread.current[:application] = self
|
38
39
|
options.each do |key, value|
|
39
40
|
case(key)
|
40
41
|
when :name, 'name'
|
@@ -45,36 +46,70 @@ module UzuUzu
|
|
45
46
|
end if options.kind_of?(Hash)
|
46
47
|
@name ||= :uzuuzu
|
47
48
|
@environments = Environments.new(@config_file)
|
48
|
-
UzuUzu.apps[@name] = self
|
49
|
+
::UzuUzu.apps[@name] = self
|
49
50
|
yield self if block_given?
|
50
51
|
end # initialize
|
51
52
|
|
53
|
+
def self.controllers
|
54
|
+
@@controllers ||= [Controller]
|
55
|
+
end
|
56
|
+
|
52
57
|
def controllers
|
53
|
-
@controllers ||=
|
58
|
+
@controllers ||= self.class.controllers.clone
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.before_filters
|
62
|
+
@@before_filters ||= [Controller.method(:before_all)]
|
54
63
|
end
|
55
64
|
|
56
65
|
def before_filters
|
57
|
-
@before_filters ||=
|
66
|
+
@before_filters ||= self.class.before_filters.clone
|
58
67
|
end
|
59
68
|
|
69
|
+
def self.after_filters
|
70
|
+
@@after_filters ||= [Controller.method(:after_all)]
|
71
|
+
end
|
72
|
+
|
60
73
|
def after_filters
|
61
|
-
@after_filters ||=
|
74
|
+
@after_filters ||= self.class.after_filters.clone
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.dicons
|
78
|
+
@@dicons ||= [
|
79
|
+
Controller,
|
80
|
+
Helper::Controller,
|
81
|
+
Helper::Renderer,
|
82
|
+
Helper::Localize,
|
83
|
+
Helper::Route,
|
84
|
+
]
|
62
85
|
end
|
63
86
|
|
64
|
-
def
|
65
|
-
@
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
87
|
+
def dicons
|
88
|
+
@dicons ||= self.class.dicons.clone
|
89
|
+
end
|
90
|
+
|
91
|
+
def self.helpers
|
92
|
+
@@helpers ||= [
|
93
|
+
Helper::Controller,
|
94
|
+
Helper::Form,
|
95
|
+
Helper::Jquery,
|
96
|
+
Helper::Localize,
|
97
|
+
Helper::Renderer,
|
98
|
+
Helper::Route,
|
99
|
+
Helper::XHtml
|
73
100
|
]
|
74
101
|
end
|
102
|
+
|
103
|
+
def helpers
|
104
|
+
@helpers ||= self.class.helpers.clone
|
105
|
+
end
|
75
106
|
|
107
|
+
def self.views
|
108
|
+
@@views ||= ['./view']
|
109
|
+
end
|
110
|
+
|
76
111
|
def views
|
77
|
-
@views ||=
|
112
|
+
@views ||= self.class.views.clone
|
78
113
|
end
|
79
114
|
|
80
115
|
#
|
@@ -97,13 +132,14 @@ module UzuUzu
|
|
97
132
|
query = map[:query]
|
98
133
|
route = map[:route]
|
99
134
|
controller = controller_class.new
|
100
|
-
|
135
|
+
include_dicon(controller)
|
136
|
+
helper = Helper::Helper.new
|
137
|
+
include_helper(helper)
|
101
138
|
|
102
139
|
action, query = find_action(controller, query)
|
103
140
|
next if action.blank?
|
104
141
|
is_send = true
|
105
|
-
di_thread(request, response, controller, action, query, route)
|
106
|
-
di_instance(request, response, controller, action, query, route)
|
142
|
+
di_thread(request, response, controller, helper, action, query, route)
|
107
143
|
action_return = send_action(request, response, controller, action, query)
|
108
144
|
if response.body.blank?
|
109
145
|
render = controller.render(action)
|
@@ -175,41 +211,32 @@ module UzuUzu
|
|
175
211
|
end
|
176
212
|
_c
|
177
213
|
end
|
214
|
+
|
178
215
|
#
|
179
216
|
#
|
180
217
|
#
|
181
|
-
def
|
182
|
-
|
183
|
-
controller.
|
218
|
+
def include_dicon(controller)
|
219
|
+
dicons.each do |dicon|
|
220
|
+
controller.extend(dicon)
|
184
221
|
end
|
185
|
-
end #
|
222
|
+
end # include_dicon
|
186
223
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
controller.instance_variable_set(:@_request, request)
|
193
|
-
controller.instance_variable_set(:@_response, response)
|
194
|
-
controller.instance_variable_set(:@_action, action)
|
195
|
-
controller.instance_variable_set(:@_query, query)
|
196
|
-
controller.instance_variable_set(:@_route, route)
|
197
|
-
end # di_instance
|
224
|
+
def include_helper(helper)
|
225
|
+
helpers.each do |h|
|
226
|
+
helper.extend(h)
|
227
|
+
end
|
228
|
+
end # include_helper
|
198
229
|
|
199
|
-
def di_thread(request, response, controller, action, query, route)
|
200
|
-
current = Thread.current
|
230
|
+
def di_thread(request, response, controller, helper, action, query, route)
|
231
|
+
current = ::Thread.current
|
201
232
|
current[:request] = request
|
202
233
|
current[:response] = response
|
203
234
|
current[:controller] = controller
|
235
|
+
current[:helper] = helper
|
204
236
|
current[:action] = action
|
205
237
|
current[:query] = query
|
206
238
|
current[:route] = route
|
207
|
-
end
|
208
|
-
|
209
|
-
def get_thread_by_di
|
210
|
-
current = Thread.current
|
211
|
-
[current[:request], current[:response], current[:controller], current[:action], current[:query], current[:route]]
|
212
|
-
end
|
239
|
+
end # di_thread
|
213
240
|
|
214
241
|
#
|
215
242
|
#
|
@@ -268,15 +295,15 @@ module UzuUzu
|
|
268
295
|
before_filters.each do |filter|
|
269
296
|
filter.call if filter.respond_to?(:call)
|
270
297
|
end
|
271
|
-
controller.send(:before
|
272
|
-
controller.send("before_#{action}"
|
298
|
+
controller.send(:before) if controller.respond_to?(:before)
|
299
|
+
controller.send("before_#{action}") if controller.respond_to?("before_#{action}")
|
273
300
|
value = controller.send(action, *query)
|
274
301
|
end
|
275
302
|
catch(:finish) do
|
276
|
-
controller.send("after_#{action}"
|
303
|
+
controller.send("after_#{action}") if controller.respond_to?("after_#{action}")
|
277
304
|
end
|
278
305
|
catch(:finish) do
|
279
|
-
controller.send(:after
|
306
|
+
controller.send(:after) if controller.respond_to?(:after)
|
280
307
|
end
|
281
308
|
after_filters.reverse.each do |filter|
|
282
309
|
catch(:finish) do
|
@@ -287,7 +314,7 @@ module UzuUzu
|
|
287
314
|
end # send_action
|
288
315
|
|
289
316
|
def error(code, request, response)
|
290
|
-
UzuUzu.logger.debug "error : #{code}"
|
317
|
+
::UzuUzu.logger.debug "error : #{code}"
|
291
318
|
uri = "#{request.scheme}://#{request.host}"
|
292
319
|
if (request.scheme == 'https' and request.port != 443) or
|
293
320
|
(request.scheme == 'http' and request.port != 80)
|
@@ -7,15 +7,25 @@ module UzuUzu
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.before_all
|
10
|
-
UzuUzu.datastore
|
11
|
-
|
10
|
+
::UzuUzu.datastore
|
11
|
+
::UzuUzu.logger.debug ::UzuUzu::Request.current.params
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.after_all
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
#
|
18
|
+
#
|
19
|
+
#
|
20
|
+
def logger
|
21
|
+
UzuUzu.logger
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
#
|
26
|
+
#
|
27
|
+
def memcache
|
28
|
+
UzuUzu.memcache
|
19
29
|
end
|
20
30
|
end # Controller
|
21
31
|
end # UzuUzu
|
@@ -3,12 +3,21 @@
|
|
3
3
|
module UzuUzu
|
4
4
|
module Helper
|
5
5
|
autoload(:Controller, 'uzuuzu/helper/controller')
|
6
|
-
autoload(:Fixture, 'uzuuzu/helper/fixture')
|
7
6
|
autoload(:Form, 'uzuuzu/helper/form')
|
8
7
|
autoload(:Jquery, 'uzuuzu/helper/jquery')
|
9
8
|
autoload(:Localize, 'uzuuzu/helper/localize')
|
10
9
|
autoload(:Renderer, 'uzuuzu/helper/renderer')
|
11
10
|
autoload(:Route, 'uzuuzu/helper/route')
|
12
11
|
autoload(:XHtml, 'uzuuzu/helper/xhtml')
|
12
|
+
|
13
|
+
def self.current
|
14
|
+
Thread.current[:helper]
|
15
|
+
end
|
16
|
+
|
17
|
+
#
|
18
|
+
#
|
19
|
+
#
|
20
|
+
class Helper
|
21
|
+
end
|
13
22
|
end
|
14
23
|
end
|
data/uzuuzu-core.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{uzuuzu-core}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.8"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Takuya Kondo"]
|
12
|
-
s.date = %q{2011-08
|
12
|
+
s.date = %q{2011-09-08}
|
13
13
|
s.description = %q{uzuuzu core library}
|
14
14
|
s.email = %q{takuya.v3v@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -28,7 +28,6 @@ Gem::Specification.new do |s|
|
|
28
28
|
"VERSION",
|
29
29
|
"lib/uzuuzu-core.rb",
|
30
30
|
"lib/uzuuzu/helper/controller.rb",
|
31
|
-
"lib/uzuuzu/helper/fixture.rb",
|
32
31
|
"lib/uzuuzu/helper/form.rb",
|
33
32
|
"lib/uzuuzu/helper/jquery.rb",
|
34
33
|
"lib/uzuuzu/helper/localize.rb",
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: uzuuzu-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.8
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Takuya Kondo
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-08
|
13
|
+
date: 2011-09-08 00:00:00 +09:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -133,7 +133,6 @@ files:
|
|
133
133
|
- VERSION
|
134
134
|
- lib/uzuuzu-core.rb
|
135
135
|
- lib/uzuuzu/helper/controller.rb
|
136
|
-
- lib/uzuuzu/helper/fixture.rb
|
137
136
|
- lib/uzuuzu/helper/form.rb
|
138
137
|
- lib/uzuuzu/helper/jquery.rb
|
139
138
|
- lib/uzuuzu/helper/localize.rb
|
@@ -173,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
172
|
requirements:
|
174
173
|
- - ">="
|
175
174
|
- !ruby/object:Gem::Version
|
176
|
-
hash: -
|
175
|
+
hash: -3233450064445015537
|
177
176
|
segments:
|
178
177
|
- 0
|
179
178
|
version: "0"
|