uzuuzu-core 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -2
- data/Gemfile.lock +2 -4
- data/VERSION +1 -1
- data/lib/uzuuzu/helper/fixture.rb +1 -0
- data/lib/uzuuzu/helper/form.rb +9 -0
- data/lib/uzuuzu/{controller/view/admin/index.xhtml → helper/jquery.rb} +0 -0
- data/lib/uzuuzu/helper/localize.rb +1 -1
- data/lib/uzuuzu/helper/renderer.rb +39 -37
- data/lib/uzuuzu/helper/route.rb +19 -36
- data/lib/uzuuzu/uzuuzu-core.rb +1 -0
- data/lib/uzuuzu/wrapper/application.rb +79 -56
- data/lib/uzuuzu/wrapper/controller.rb +0 -14
- data/lib/uzuuzu/wrapper/environments.rb +19 -9
- data/lib/uzuuzu/wrapper/helper.rb +2 -1
- data/lib/uzuuzu/wrapper/lang/en.yaml +4 -0
- data/lib/uzuuzu/wrapper/lang/ja.yaml +5 -0
- data/lib/uzuuzu/wrapper/logger.rb +14 -11
- data/lib/uzuuzu/wrapper/request.rb +18 -10
- data/lib/uzuuzu/wrapper/tilt.rb +31 -0
- data/lib/uzuuzu/wrapper/uzuuzu.rb +22 -0
- data/uzuuzu-core.gemspec +8 -40
- metadata +13 -53
- data/.redcar/tags +0 -145
- data/lib/uzuuzu/.DS_Store +0 -0
- data/lib/uzuuzu/controller/admin.rb +0 -11
- data/lib/uzuuzu/controller/contents.rb +0 -11
- data/lib/uzuuzu/controller/crud.rb +0 -235
- data/lib/uzuuzu/controller/css.rb +0 -11
- data/lib/uzuuzu/controller/error.rb +0 -11
- data/lib/uzuuzu/controller/index.rb +0 -25
- data/lib/uzuuzu/controller/initialize.rb +0 -52
- data/lib/uzuuzu/controller/javascript.rb +0 -11
- data/lib/uzuuzu/controller/oauth.rb +0 -10
- data/lib/uzuuzu/controller/openid.rb +0 -40
- data/lib/uzuuzu/controller/page.rb +0 -14
- data/lib/uzuuzu/controller/plugin.rb +0 -11
- data/lib/uzuuzu/controller/user.rb +0 -22
- data/lib/uzuuzu/controller/view/crud/destroy.rhtml +0 -28
- data/lib/uzuuzu/controller/view/crud/edit.rhtml +0 -52
- data/lib/uzuuzu/controller/view/crud/index.rhtml +0 -45
- data/lib/uzuuzu/controller/view/crud/new.rhtml +0 -48
- data/lib/uzuuzu/controller/view/crud/show.rhtml +0 -47
- data/lib/uzuuzu/controller/view/error/404.tenjin +0 -0
- data/lib/uzuuzu/controller/view/initialize/step1.xhtml +0 -30
- data/lib/uzuuzu/controller/view/initialize/step2.xhtml +0 -1
- data/lib/uzuuzu/controller/view/initialize/step3.xhtml +0 -0
- data/lib/uzuuzu/controller/view/openid/index.xhtml +0 -14
- data/lib/uzuuzu/controller/view/page.xhtml +0 -17
- data/lib/uzuuzu/controller/view/user/entry.xhtml +0 -13
- data/lib/uzuuzu/fixture/layout.yaml +0 -110
- data/lib/uzuuzu/helper/uzuuzu_page.rb +0 -61
- data/lib/uzuuzu/model/.DS_Store +0 -0
- data/lib/uzuuzu/model/remote_user.rb +0 -70
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -8,7 +8,7 @@ GEM
|
|
8
8
|
bundler (~> 1.0)
|
9
9
|
git (>= 1.2.5)
|
10
10
|
rake
|
11
|
-
|
11
|
+
oauth (0.4.5)
|
12
12
|
rack (1.3.1)
|
13
13
|
rake (0.8.7)
|
14
14
|
rcov (0.9.9)
|
@@ -21,7 +21,6 @@ GEM
|
|
21
21
|
diff-lcs (~> 1.1.2)
|
22
22
|
rspec-mocks (2.6.0)
|
23
23
|
ruby-openid (2.1.8)
|
24
|
-
tenjin (0.6.1)
|
25
24
|
tilt (1.3.2)
|
26
25
|
|
27
26
|
PLATFORMS
|
@@ -31,10 +30,9 @@ DEPENDENCIES
|
|
31
30
|
bundler
|
32
31
|
extlib
|
33
32
|
jeweler
|
34
|
-
|
33
|
+
oauth
|
35
34
|
rack
|
36
35
|
rcov
|
37
36
|
rspec
|
38
37
|
ruby-openid
|
39
|
-
tenjin
|
40
38
|
tilt
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
File without changes
|
@@ -3,19 +3,20 @@
|
|
3
3
|
module UzuUzu
|
4
4
|
module Helper
|
5
5
|
module Renderer
|
6
|
-
|
7
|
-
def render(action, options={})
|
8
|
-
_request, _response, _controller, _action, _query, _route = UzuUzu.current.get_thread_by_di
|
9
|
-
browser = Rack::Test::Session.new(Rack::MockSession.new(UzuUzu.current))
|
10
|
-
browser.get self.url_for(action, options)
|
11
|
-
browser.last_response.body
|
12
|
-
UzuUzu.current.di_thread(_request, _response, _controller, _action, _query, _route)
|
13
|
-
end
|
14
|
-
end
|
6
|
+
extend TiltWrapper
|
15
7
|
|
16
|
-
|
17
|
-
|
8
|
+
#
|
9
|
+
#
|
10
|
+
#
|
11
|
+
def render_full(controller, action, options={})
|
12
|
+
_request, _response, _controller, _action, _query, _route = ::UzuUzu.current.get_thread_by_di
|
13
|
+
browser = ::Rack::MockRequest.new(::UzuUzu.current)
|
14
|
+
_render_response = browser.get self.rf(controller, action, options)
|
15
|
+
_render = _render_response.body.to_s
|
16
|
+
::UzuUzu.current.di_thread(_request, _response, _controller, _action, _query, _route)
|
17
|
+
_render
|
18
18
|
end
|
19
|
+
|
19
20
|
#
|
20
21
|
#
|
21
22
|
#
|
@@ -26,6 +27,9 @@ module UzuUzu
|
|
26
27
|
throw :finish
|
27
28
|
end
|
28
29
|
|
30
|
+
#
|
31
|
+
#
|
32
|
+
#
|
29
33
|
def respond_to
|
30
34
|
return unless block_given?
|
31
35
|
response.status = 200
|
@@ -39,7 +43,7 @@ module UzuUzu
|
|
39
43
|
def render(view, options={}, locals={}, &block)
|
40
44
|
view_path = nil
|
41
45
|
catch(:view_finded) do
|
42
|
-
Tilt.mappings.each_key do |key|
|
46
|
+
::Tilt.mappings.each_key do |key|
|
43
47
|
self.application.views.each do |view_route|
|
44
48
|
_view_path = "#{view_route}#{self.route}/#{view}.#{key}"
|
45
49
|
if ::File.file?(_view_path)
|
@@ -55,20 +59,6 @@ module UzuUzu
|
|
55
59
|
render_file(view_path, options={}, locals={}, &block)
|
56
60
|
end
|
57
61
|
|
58
|
-
#
|
59
|
-
#
|
60
|
-
#
|
61
|
-
def render_engine(view_string, engine=UzuUzu.engine, options={}, locals={}, &block)
|
62
|
-
template = Tilt[engine].new { |t| view_string }
|
63
|
-
contents = template.render(self, locals, &block)
|
64
|
-
unless options.blank?
|
65
|
-
layout = options[:layout] || options['layout']
|
66
|
-
unless layout.blank?
|
67
|
-
wrap_layout(layout, contents, options, locals)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
contents
|
71
|
-
end
|
72
62
|
#
|
73
63
|
#
|
74
64
|
#
|
@@ -77,19 +67,15 @@ module UzuUzu
|
|
77
67
|
view_string = ::File.respond_to?(:binread) ? ::File.binread(view_path) : ::File.read(view_path)
|
78
68
|
render_engine(view_string, ::File.extname(view_path), options, locals, &block)
|
79
69
|
else
|
80
|
-
raise ArgmentError.new("file not found : #{view_path}")
|
70
|
+
raise ::ArgmentError.new("file not found : #{view_path}")
|
81
71
|
end
|
82
72
|
end
|
83
|
-
|
73
|
+
|
84
74
|
#
|
85
75
|
#
|
86
76
|
#
|
87
|
-
def
|
88
|
-
|
89
|
-
template = Tilt.new(layout)
|
90
|
-
contents = template.render(self, locals.merge({:contents => contents})){contents}
|
91
|
-
end
|
92
|
-
contents
|
77
|
+
def render_engine(view_string, engine=::UzuUzu.engine, options={}, locals={}, &block)
|
78
|
+
UzuUzu.render_engine(self, view_string, engine, options, locals, &block)
|
93
79
|
end
|
94
80
|
|
95
81
|
def send_file()
|
@@ -117,6 +103,20 @@ module UzuUzu
|
|
117
103
|
response.redirect(uri)
|
118
104
|
throw :finish
|
119
105
|
end # redirect
|
106
|
+
|
107
|
+
#
|
108
|
+
#
|
109
|
+
#
|
110
|
+
def server_error(code=500, options={})
|
111
|
+
redirect self.rf(UzuUzu::Controller::Index, :error, code)
|
112
|
+
end # error
|
113
|
+
|
114
|
+
#
|
115
|
+
#
|
116
|
+
#
|
117
|
+
def not_found(code=404, options={})
|
118
|
+
redirect self.rf(UzuUzu::Controller::Index, :error, code)
|
119
|
+
end
|
120
120
|
|
121
121
|
#
|
122
122
|
#
|
@@ -126,10 +126,10 @@ module UzuUzu
|
|
126
126
|
if time.respond_to?(:to_time)
|
127
127
|
time = time.to_time
|
128
128
|
else
|
129
|
-
time = Time.parse(time.to_s)
|
129
|
+
time = ::Time.parse(time.to_s)
|
130
130
|
end
|
131
131
|
response['Last-Modified'] = time.httpdate
|
132
|
-
if Time.httpdate(request.env['HTTP_IF_MODIFIED_SINCE']).to_i >= time.to_i
|
132
|
+
if ::Time.httpdate(request.env['HTTP_IF_MODIFIED_SINCE']).to_i >= time.to_i
|
133
133
|
response.status = 304
|
134
134
|
throw :finish
|
135
135
|
end
|
@@ -139,7 +139,7 @@ module UzuUzu
|
|
139
139
|
#
|
140
140
|
#
|
141
141
|
def etag(value, kind=:strong)
|
142
|
-
raise TypeError, ":strong or :weak expected" if ![:strong,:weak].include?(kind)
|
142
|
+
raise ::TypeError, ":strong or :weak expected" if ![:strong,:weak].include?(kind)
|
143
143
|
value = '"%s"' % value
|
144
144
|
value = 'W/' + value if kind == :weak
|
145
145
|
response['ETag'] = value
|
@@ -153,6 +153,8 @@ module UzuUzu
|
|
153
153
|
end
|
154
154
|
end
|
155
155
|
end # etag
|
156
|
+
|
157
|
+
|
156
158
|
end # Renderer
|
157
159
|
end # Helper
|
158
160
|
end # UzuUzu
|
data/lib/uzuuzu/helper/route.rb
CHANGED
@@ -3,46 +3,29 @@
|
|
3
3
|
module UzuUzu
|
4
4
|
module Helper
|
5
5
|
module Route
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
break
|
16
|
-
end
|
6
|
+
def url_for_controller(controller, *args)
|
7
|
+
app = UzuUzu.current
|
8
|
+
route_string = request.env['SCRIPT_NAME']
|
9
|
+
app.controllers.each do |root_controller|
|
10
|
+
re = Regexp.compile("^#{root_controller.name}::")
|
11
|
+
if re =~ controller.name
|
12
|
+
path = controller.name.gsub(re, '').gsub(/Controller$/, '').to_const_path
|
13
|
+
route_string << "/#{path}" unless path == 'index'
|
14
|
+
break
|
17
15
|
end
|
18
|
-
if args[-1].kind_of?(Hash)
|
19
|
-
query = query_string(args.pop)
|
20
|
-
end
|
21
|
-
args.each do |arg|
|
22
|
-
route_string << "/#{arg}"
|
23
|
-
end
|
24
|
-
|
25
|
-
route_string << '/' if args.blank?
|
26
|
-
route_string << query unless query.blank?
|
27
|
-
route_string
|
28
16
|
end
|
29
|
-
|
30
|
-
|
31
|
-
#
|
32
|
-
#
|
33
|
-
def query_string(query_options={})
|
34
|
-
query_string = []
|
35
|
-
query_options do |key, value|
|
36
|
-
query_string << "#{key}=#{value}"
|
37
|
-
end
|
38
|
-
return "" if query_string.blank?
|
39
|
-
"?#{query_string.join('&')}"
|
17
|
+
if args[-1].kind_of?(Hash)
|
18
|
+
query = query_string(args.pop)
|
40
19
|
end
|
20
|
+
args.each do |arg|
|
21
|
+
route_string << "/#{arg}"
|
22
|
+
end
|
23
|
+
|
24
|
+
route_string << '/' if args.blank?
|
25
|
+
route_string << query unless query.blank?
|
26
|
+
route_string
|
41
27
|
end
|
42
|
-
|
43
|
-
def self.included(clazz)
|
44
|
-
clazz.extend RouteClass
|
45
|
-
end
|
28
|
+
alias :rf :url_for_controller
|
46
29
|
|
47
30
|
def url_for(*args)
|
48
31
|
route_string = @_route.clone
|
data/lib/uzuuzu/uzuuzu-core.rb
CHANGED
@@ -8,6 +8,7 @@ require 'uzuuzu/wrapper/memcache'
|
|
8
8
|
require 'uzuuzu/wrapper/datastore'
|
9
9
|
require 'uzuuzu/wrapper/request'
|
10
10
|
require 'uzuuzu/wrapper/response'
|
11
|
+
require 'uzuuzu/wrapper/tilt'
|
11
12
|
require 'uzuuzu/wrapper/controller'
|
12
13
|
require 'uzuuzu/wrapper/helper'
|
13
14
|
require 'uzuuzu/wrapper/application'
|
@@ -23,10 +23,13 @@ module UzuUzu
|
|
23
23
|
#
|
24
24
|
attr_accessor :views
|
25
25
|
|
26
|
+
#
|
27
|
+
#
|
28
|
+
#
|
26
29
|
def self.current
|
27
30
|
Thread.current[:application]
|
28
31
|
end
|
29
|
-
|
32
|
+
|
30
33
|
#
|
31
34
|
#
|
32
35
|
#
|
@@ -65,7 +68,7 @@ module UzuUzu
|
|
65
68
|
UzuUzu::Helper::Renderer,
|
66
69
|
UzuUzu::Helper::Localize,
|
67
70
|
UzuUzu::Helper::Route,
|
68
|
-
UzuUzu::Helper::
|
71
|
+
UzuUzu::Helper::Form,
|
69
72
|
UzuUzu::Helper::XHtml
|
70
73
|
]
|
71
74
|
end
|
@@ -89,7 +92,7 @@ module UzuUzu
|
|
89
92
|
is_send = false
|
90
93
|
action_return = nil
|
91
94
|
render = nil
|
92
|
-
clazz.each do |map|
|
95
|
+
clazz.reverse.each do |map|
|
93
96
|
controller_class = map[:clazz]
|
94
97
|
query = map[:query]
|
95
98
|
route = map[:route]
|
@@ -126,49 +129,52 @@ module UzuUzu
|
|
126
129
|
request_paths = env['PATH_INFO'].split('/')
|
127
130
|
request_paths.shift if request_paths[0].blank?
|
128
131
|
|
129
|
-
controllers.
|
130
|
-
if
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
classies << {:clazz => c.module_eval(c_str),
|
142
|
-
:route => route,
|
143
|
-
:query => query}
|
144
|
-
end
|
145
|
-
rescue NameError => e
|
146
|
-
begin
|
147
|
-
if c.const_defined?("#{c_str}Controller")
|
148
|
-
classies << {:clazz => c.module_eval("#{c_str}Controller"),
|
149
|
-
:route => route,
|
150
|
-
:query => query}
|
151
|
-
end
|
152
|
-
rescue NameError => e
|
153
|
-
end
|
154
|
-
end
|
132
|
+
controllers.each do |c|
|
133
|
+
if request_paths.size == 0
|
134
|
+
add_classies(classies, c, 'Index', env['SCRIPT_NAME'], request_paths)
|
135
|
+
end
|
136
|
+
request_paths.each_with_index do |request_path, index|
|
137
|
+
next if request_path.blank?
|
138
|
+
c_str = request_path.camel_case
|
139
|
+
route = "#{request_paths[0...index].join('/')}"
|
140
|
+
if route.blank?
|
141
|
+
route = "#{env['SCRIPT_NAME']}"
|
142
|
+
else
|
143
|
+
route = "#{env['SCRIPT_NAME']}/#{route}"
|
155
144
|
end
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
145
|
+
query = request_paths[index..-1]
|
146
|
+
add_classies(classies, c, 'Index', route, query)
|
147
|
+
next if c_str == 'Index'
|
148
|
+
route = "#{env['SCRIPT_NAME']}/#{request_paths[0..index].join('/')}"
|
149
|
+
query = request_paths[(index+1)..-1]
|
150
|
+
_c = add_classies(classies, c, c_str, route, query)
|
151
|
+
if _c
|
152
|
+
c = _c
|
153
|
+
else
|
154
|
+
break
|
164
155
|
end
|
165
|
-
else
|
166
|
-
UzuUzu.logger.warn "routing miss controllers only Module or Class : #{c}"
|
167
156
|
end
|
168
157
|
end
|
169
158
|
classies
|
170
159
|
end # find_controller
|
171
160
|
|
161
|
+
def add_classies(classies, c, c_str, route, query)
|
162
|
+
_c = nil
|
163
|
+
begin
|
164
|
+
if c.const_defined?(c_str)
|
165
|
+
_c = c.const_get(c_str)
|
166
|
+
classies << {:clazz => _c,
|
167
|
+
:route => route,
|
168
|
+
:query => query}
|
169
|
+
elsif c.const_defined?("#{c_str}Controller")
|
170
|
+
classies << {:clazz => c.const_get("#{c_str}Controller"),
|
171
|
+
:route => route,
|
172
|
+
:query => query}
|
173
|
+
end
|
174
|
+
rescue NameError => e
|
175
|
+
end
|
176
|
+
_c
|
177
|
+
end
|
172
178
|
#
|
173
179
|
#
|
174
180
|
#
|
@@ -210,30 +216,39 @@ module UzuUzu
|
|
210
216
|
#
|
211
217
|
def find_action(controller, query)
|
212
218
|
action = nil
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
if query[0] and controller.respond_to?(query[0])
|
219
|
+
index_flag = false
|
220
|
+
query[-1] = query[-1].sub(/\.\w+$/, '') if query && query[-1]
|
221
|
+
if query[0] && controller.respond_to?(query[0])
|
217
222
|
action = query.shift
|
218
223
|
end
|
219
|
-
if action.nil?
|
224
|
+
if action.nil? && controller.respond_to?(:index)
|
220
225
|
action = 'index'
|
221
226
|
end
|
222
227
|
|
223
228
|
unless action.nil?
|
224
229
|
arity = controller.method(action).arity
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
unless (arity >= 0 and query.size == arity) or
|
233
|
-
(arity < 0 and query.size >= ((-1 * arity)-1))
|
234
|
-
action = nil
|
230
|
+
owner = controller.method(action).owner
|
231
|
+
unless controller.method(action).owner == controller.class
|
232
|
+
index_flag = true
|
233
|
+
if controller.respond_to?(:use_actions)
|
234
|
+
controller.actions.each do |use_action|
|
235
|
+
if use_action.to_s == action.to_s
|
236
|
+
index_flag = false
|
235
237
|
end
|
236
|
-
|
238
|
+
end
|
239
|
+
end
|
240
|
+
end
|
241
|
+
unless (arity >= 0 && query.size == arity) or
|
242
|
+
(arity < 0 && query.size >= ((-1 * arity)-1))
|
243
|
+
index_flag = true
|
244
|
+
end
|
245
|
+
if index_flag && !(action == 'index') && controller.respond_to?(:index)
|
246
|
+
query.unshift(action)
|
247
|
+
action = 'index'
|
248
|
+
if controller.respond_to?(action)
|
249
|
+
arity = controller.method(action).arity
|
250
|
+
unless (arity >= 0 && query.size == arity) ||
|
251
|
+
(arity < 0 && query.size >= ((-1 * arity)-1))
|
237
252
|
action = nil
|
238
253
|
end
|
239
254
|
else
|
@@ -254,9 +269,17 @@ module UzuUzu
|
|
254
269
|
filter.call if filter.respond_to?(:call)
|
255
270
|
end
|
256
271
|
controller.send(:before, []) if controller.respond_to?(:before)
|
272
|
+
controller.send("before_#{action}", []) if controller.respond_to?("before_#{action}")
|
257
273
|
value = controller.send(action, *query)
|
274
|
+
end
|
275
|
+
catch(:finish) do
|
276
|
+
controller.send("after_#{action}", []) if controller.respond_to?("after_#{action}")
|
277
|
+
end
|
278
|
+
catch(:finish) do
|
258
279
|
controller.send(:after, []) if controller.respond_to?(:after)
|
259
|
-
|
280
|
+
end
|
281
|
+
after_filters.reverse.each do |filter|
|
282
|
+
catch(:finish) do
|
260
283
|
filter.call if filter.respond_to?(:call)
|
261
284
|
end
|
262
285
|
end
|