uzuuzu-core 0.0.9 → 0.0.10

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 CHANGED
@@ -1 +1 @@
1
- 0.0.9
1
+ 0.0.10
@@ -18,8 +18,6 @@ module UzuUzu
18
18
  #
19
19
  attr_accessor :after_filters
20
20
  #
21
- attr_accessor :dicons
22
- #
23
21
  attr_accessor :helpers
24
22
  #
25
23
  attr_accessor :views
@@ -73,24 +71,9 @@ module UzuUzu
73
71
  def after_filters
74
72
  @after_filters ||= self.class.after_filters.clone
75
73
  end
76
-
77
- def self.dicons
78
- @@dicons ||= [
79
- Helper::UzuUzuHelper,
80
- Helper::Controller,
81
- Helper::Renderer,
82
- Helper::Localize,
83
- Helper::Route,
84
- ]
85
- end
86
-
87
- def dicons
88
- @dicons ||= self.class.dicons.clone
89
- end
90
74
 
91
75
  def self.helpers
92
76
  @@helpers ||= [
93
- Helper::UzuUzuHelper,
94
77
  Helper::Controller,
95
78
  Helper::Form,
96
79
  Helper::Jquery,
@@ -122,7 +105,8 @@ module UzuUzu
122
105
  response = UzuUzu::Response.new
123
106
  clazz = find_controller(env)
124
107
  if clazz.blank?
125
- return not_found(request, response)
108
+ di_thread(request, response, nil, nil, nil, nil, nil)
109
+ return not_found(response)
126
110
  end
127
111
 
128
112
  is_send = false
@@ -133,23 +117,22 @@ module UzuUzu
133
117
  query = map[:query]
134
118
  route = map[:route]
135
119
  controller = controller_class.new
136
- include_dicon(controller)
137
120
  helper = Helper::Helper.new
138
121
  include_helper(helper)
139
122
 
140
123
  action, query = find_action(controller, query)
124
+ di_thread(request, response, controller, helper, action, query, route)
141
125
  next if action.blank?
142
126
  is_send = true
143
- di_thread(request, response, controller, helper, action, query, route)
144
127
  action_return = send_action(request, response, controller, action, query)
145
128
  if response.body.blank?
146
- render = controller.render(action)
129
+ render = helper.render(action)
147
130
  end
148
131
  break
149
132
  end
150
133
 
151
134
  unless is_send
152
- return not_found(request, response)
135
+ return not_found(response)
153
136
  end
154
137
  if response.status == 200 and response.body.blank?
155
138
  response.write render || action_return
@@ -216,18 +199,15 @@ module UzuUzu
216
199
  #
217
200
  #
218
201
  #
219
- def include_dicon(controller)
220
- dicons.each do |dicon|
221
- controller.extend(dicon)
222
- end
223
- end # include_dicon
224
-
225
202
  def include_helper(helper)
226
203
  helpers.each do |h|
227
204
  helper.extend(h)
228
205
  end
229
206
  end # include_helper
230
207
 
208
+ #
209
+ #
210
+ #
231
211
  def di_thread(request, response, controller, helper, action, query, route)
232
212
  current = ::Thread.current
233
213
  current[:request] = request
@@ -266,22 +246,22 @@ module UzuUzu
266
246
  end
267
247
  end
268
248
  end
269
- unless (arity >= 0 && query.size == arity) or
249
+ unless (arity >= 0 && query.size == arity) ||
270
250
  (arity < 0 && query.size >= ((-1 * arity)-1))
271
251
  index_flag = true
272
252
  end
273
253
  if index_flag && !(action == 'index') && controller.respond_to?(:index)
274
254
  query.unshift(action)
275
255
  action = 'index'
276
- if controller.respond_to?(action)
277
- arity = controller.method(action).arity
278
- unless (arity >= 0 && query.size == arity) ||
279
- (arity < 0 && query.size >= ((-1 * arity)-1))
280
- action = nil
281
- end
282
- else
256
+ end
257
+ if controller.respond_to?(action)
258
+ arity = controller.method(action).arity
259
+ unless (arity >= 0 && query.size == arity) ||
260
+ (arity < 0 && query.size >= ((-1 * arity)-1))
283
261
  action = nil
284
262
  end
263
+ else
264
+ action = nil
285
265
  end
286
266
  end
287
267
  [action, query]
@@ -313,21 +293,12 @@ module UzuUzu
313
293
  end
314
294
  value
315
295
  end # send_action
316
-
317
- def error(code, request, response)
318
- ::UzuUzu.logger.debug "error : #{code}"
319
- uri = "#{request.scheme}://#{request.host}"
320
- if (request.scheme == 'https' and request.port != 443) or
321
- (request.scheme == 'http' and request.port != 80)
322
- uri << ":#{request.port}"
296
+
297
+ def not_found(response)
298
+ catch(:finish) do
299
+ response.redirect("/error/404")
323
300
  end
324
- uri << "#{request.env["SCRIPT_NAME"]}/error/#{code}"
325
- response.redirect(uri)
326
301
  response.finish
327
302
  end
328
-
329
- def not_found(request, response)
330
- error(404, request, response)
331
- end
332
303
  end # Application
333
304
  end # UzuUzu
@@ -3,6 +3,7 @@
3
3
  module UzuUzu
4
4
  module Controller
5
5
  autoload(:Error, 'uzuuzu/controller/error')
6
+
6
7
  def self.current
7
8
  Thread.current[:controller]
8
9
  end
@@ -4,7 +4,7 @@ module UzuUzu
4
4
  module Controller
5
5
  class Error
6
6
  def index(code)
7
- respond(render_file(__DIR__("view/error/#{code}.rhtml")))
7
+ response.respond(helper.render_file(__DIR__("view/error/#{code}.rhtml")))
8
8
  end
9
9
  end
10
10
  end
@@ -110,7 +110,113 @@ module UzuUzu
110
110
  end
111
111
  false
112
112
  end
113
+
114
+ def import_file(model, file, overwrite=false)
115
+ unless ::File.file?(file)
116
+ raise "UzuUzu fixture import error file not found : #{file}"
117
+ end
118
+ ext = ::File.extname(file)
119
+ case(ext)
120
+ when '.yml', '.yaml'
121
+ import_yaml(model, ::YAML.load_file(file), overwrite)
122
+ when '.xml'
123
+ # TODO
124
+ when '.json', '.js'
125
+ # TODO
126
+ when '.csv'
127
+ begin
128
+ require 'fastercsv'
129
+ ::FasterCSV.foreach(file) do |row|
130
+ import_csv(model, row, overwrite)
131
+ end
132
+ rescue
133
+ require "csv"
134
+ ::CSV.open(file) do |row|
135
+ import_csv(model, row, overwrite)
136
+ end
137
+ end
138
+ end
139
+ nil
140
+ end
141
+
142
+ def import_yaml(model, yaml, overwrite=false)
143
+ ::UzuUzu.logger.debug 'import yaml'
144
+ transaction do |tr|
145
+ tr.begin
146
+ begin
147
+ if yaml.kind_of?(Array)
148
+ yaml.each do |map|
149
+ ::UzuUzu.logger.debug "import #{map.inspect}"
150
+ resource = model.first(:id => map[:id]) unless map[:id].nil?
151
+ if resource.nil?
152
+ resource = model.new(map)
153
+ unless resource.valid?
154
+ ::UzuUzu.logger.error resource.errors
155
+ end
156
+ resource.save
157
+ elsif overwrite
158
+ resource.update(map)
159
+ unless resource.valid?
160
+ ::UzuUzu.logger.error resource.errors
161
+ end
162
+ end
163
+ end
164
+ elsif yaml.kind_of?(Hash)
165
+ ::UzuUzu.logger.debug "import #{yaml.inspect}"
166
+ resource = model.first(:id => yaml[:id]) unless yaml[:id].nil?
167
+ if resource.nil?
168
+ resource = model.new(yaml)
169
+ unless resource.valid?
170
+ ::UzuUzu.logger.error resource.errors
171
+ end
172
+ resource.save
173
+ elsif overwrite
174
+ resource.update(yaml)
175
+ unless resource.valid?
176
+ ::UzuUzu.logger.error resource.errors
177
+ end
178
+ end
179
+ else
180
+ ::UzuUzu.logger.error "import type miss match #{yaml.inspect}"
181
+ end
182
+ ::UzuUzu.logger.debug 'imported yaml'
183
+ tr.commit
184
+ rescue => e
185
+ tr.rollback
186
+ raise e
187
+ end
188
+ end # transaction
189
+ end # import_yaml
190
+
191
+ def import_json(model, json, overwrite=false)
192
+ # TODO
193
+ end
194
+
195
+ def import_xml(model, xml, overwrite=false)
196
+ # TODO
197
+ end
113
198
 
199
+ def import_csv(model, csv, overwrite=false)
200
+ transaction do |tr|
201
+ tr.begin
202
+ begin
203
+ resource = model.first(:id => csv[0])
204
+ csv.each_with_index do |culumn, index|
205
+ if resource.nil? || overwrite
206
+ resource ||= model.new
207
+ resource.properties.each_with_index do |property, column_no|
208
+ resource[property.name] = culumn if index = column_no
209
+ end
210
+ resource.save
211
+ end
212
+ end
213
+ tr.commit
214
+ rescue => e
215
+ tr.rollback
216
+ raise e
217
+ end
218
+ end
219
+ end # import_csv
114
220
  end # Datamapper
115
221
  end # DataStore
116
222
  end # UzuUzu
data/lib/uzuuzu/helper.rb CHANGED
@@ -8,7 +8,6 @@ module UzuUzu
8
8
  autoload(:Localize, 'uzuuzu/helper/localize')
9
9
  autoload(:Renderer, 'uzuuzu/helper/renderer')
10
10
  autoload(:Route, 'uzuuzu/helper/route')
11
- autoload(:UzuUzuHelper, 'uzuuzu/helper/uzuuzu')
12
11
  autoload(:XHtml, 'uzuuzu/helper/xhtml')
13
12
 
14
13
  def self.current
@@ -9,6 +9,41 @@ module UzuUzu
9
9
  #
10
10
  #
11
11
  module Controller
12
+ #
13
+ #
14
+ #
15
+ def logger
16
+ ::UzuUzu.logger
17
+ end
18
+
19
+ #
20
+ #
21
+ #
22
+ def memcache
23
+ ::UzuUzu.memcache
24
+ end
25
+
26
+ #
27
+ #
28
+ #
29
+ def kvs
30
+ ::UzuUzu.kvs
31
+ end
32
+
33
+ #
34
+ #
35
+ #
36
+ def datastore
37
+ ::UzuUzu.datastore
38
+ end
39
+
40
+ #
41
+ #
42
+ #
43
+ def mailer
44
+ ::UzuUzu.mailer
45
+ end
46
+
12
47
  #
13
48
  #
14
49
  #
@@ -20,28 +55,42 @@ module UzuUzu
20
55
  #
21
56
  #
22
57
  def controller
23
- ::UzuUzu::Controller.current
58
+ ::UzuUzu.controller
24
59
  end
25
60
 
26
61
  #
27
62
  #
28
63
  #
29
64
  def request
30
- ::UzuUzu::Request.current
65
+ ::UzuUzu.request
31
66
  end
32
67
 
33
68
  #
34
69
  #
35
70
  #
36
71
  def response
37
- ::UzuUzu::Response.current
72
+ ::UzuUzu.response
38
73
  end
39
74
 
40
75
  #
41
76
  #
42
77
  #
43
78
  def helper
44
- ::UzuUzu::Helper.current
79
+ ::UzuUzu.helper
80
+ end
81
+
82
+ #
83
+ #
84
+ #
85
+ def model
86
+ ::UzuUzu.model
87
+ end
88
+
89
+ #
90
+ #
91
+ #
92
+ def service
93
+ ::UzuUzu.service
45
94
  end
46
95
 
47
96
  #
@@ -86,16 +135,6 @@ module UzuUzu
86
135
  Rack::Utils.unescape(s)
87
136
  end
88
137
 
89
- #
90
- #
91
- #
92
- def mime_type(type, value=nil)
93
- return type if type.nil? || type.to_s.include?('/')
94
- type = ".#{type}" unless type.to_s[0] == ?.
95
- return Rack::Mime.mime_type(type, nil) if value.nil?
96
- Rack::Mime::MIME_TYPES[type] = value
97
- end
98
-
99
138
  #
100
139
  #
101
140
  #
@@ -16,32 +16,12 @@ module UzuUzu
16
16
  _query = query
17
17
  _route = route
18
18
  browser = ::Rack::MockRequest.new(::UzuUzu.current)
19
- _render_response = browser.get(controller.rf(controller_clazz, action, options))
19
+ _render_response = browser.get(helper.rf(controller_clazz, action, options))
20
20
  _render = _render_response.body.to_s
21
21
  ::UzuUzu.current.di_thread(_request, _response, _controller, _helper, _action, _query, _route)
22
22
  _render
23
23
  end
24
24
 
25
- #
26
- #
27
- #
28
- def respond(string, mime=nil, status=200)
29
- response.status = 200
30
- response["Content-Type"] = mime_type(mime) || mime unless mime.nil?
31
- response.write string
32
- throw :finish
33
- end
34
-
35
- #
36
- #
37
- #
38
- def respond_to
39
- return unless block_given?
40
- response.status = 200
41
- contents = yield(request.wish)
42
- respond(contents, request.wish) if contents and response.successful?
43
- end
44
-
45
25
  #
46
26
  #
47
27
  #
@@ -50,7 +30,7 @@ module UzuUzu
50
30
  catch(:view_finded) do
51
31
  ::Tilt.mappings.each_key do |key|
52
32
  application.views.each do |view_route|
53
- _view_path = "#{view_route}#{controller.route}/#{view}.#{key}"
33
+ _view_path = "#{view_route}#{helper.route}/#{view}.#{key}"
54
34
  if ::File.file?(_view_path)
55
35
  view_path = _view_path
56
36
  throw :view_finded
@@ -85,83 +65,6 @@ module UzuUzu
85
65
  UzuUzu.render_engine(helper, view_string, engine, options, locals, &block)
86
66
  end
87
67
 
88
- def send_file()
89
-
90
- end
91
-
92
- def send_binary()
93
-
94
- end
95
-
96
- #
97
- #
98
- #
99
- def redirect(uri, options={})
100
- if not uri =~ /^https?:\/\//
101
- abs_uri = "#{request.scheme}://#{request.host}"
102
-
103
- if request.scheme == 'https' && request.port != 443 ||
104
- request.scheme == 'http' && request.port != 80
105
- abs_uri << ":#{request.port}"
106
- end
107
- uri = (abs_uri << uri)
108
- end
109
- uri << query_string(options)
110
- response.redirect(uri)
111
- throw :finish
112
- end # redirect
113
-
114
- #
115
- #
116
- #
117
- def server_error(code=500, options={})
118
- redirect controller.rf(UzuUzu::Controller::Index, :error, code)
119
- end # error
120
-
121
- #
122
- #
123
- #
124
- def not_found(code=404, options={})
125
- redirect controller.rf(UzuUzu::Controller::Index, :error, code)
126
- end
127
-
128
- #
129
- #
130
- #
131
- def last_modified(time)
132
- return unless time
133
- if time.respond_to?(:to_time)
134
- time = time.to_time
135
- else
136
- time = ::Time.parse(time.to_s)
137
- end
138
- response['Last-Modified'] = time.httpdate
139
- if ::Time.httpdate(request.env['HTTP_IF_MODIFIED_SINCE']).to_i >= time.to_i
140
- response.status = 304
141
- throw :finish
142
- end
143
- end # last_modified
144
-
145
- #
146
- #
147
- #
148
- def etag(value, kind=:strong)
149
- raise ::TypeError, ":strong or :weak expected" if ![:strong,:weak].include?(kind)
150
- value = '"%s"' % value
151
- value = 'W/' + value if kind == :weak
152
- response['ETag'] = value
153
-
154
- # Conditional GET check
155
- if etags = env['HTTP_IF_NONE_MATCH']
156
- etags = etags.split(/\s*,\s*/)
157
- if etags.include?(value) || etags.include?('*')
158
- response.status = 304
159
- throw :finish
160
- end
161
- end
162
- end # etag
163
-
164
-
165
68
  end # Renderer
166
69
  end # Helper
167
70
  end # UzuUzu
@@ -11,13 +11,4 @@ login: Login
11
11
  not_found: page is not found
12
12
  server_error: server error
13
13
 
14
- # openid
15
- openid_messege: Choice!
16
- openid_url: Other OpenId URL
17
-
18
- # user entry
19
- user_entry: Please Entry
20
- user_entry_name: Display Name
21
-
22
-
23
14
 
@@ -6,6 +6,7 @@ entry: 登録
6
6
  update: 更新
7
7
  delete: 削除
8
8
 
9
+ login: ログイン
9
10
 
10
11
  # error
11
12
  not_found: お探しのページが見つかりません。
@@ -0,0 +1,49 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ module Model
5
+ #
6
+ AppsLoaded = {}
7
+ #
8
+ #
9
+ #
10
+ def const_missing(id)
11
+ AppsLoaded[::UzuUzu.current.name] ||= {}
12
+ model = AppsLoaded[::UzuUzu.current.name][id.to_sym]
13
+ unless model
14
+ require_base = self.name.gsub(/::/, '/').sub(/^UzuUzu/, 'uzuuzu').snake_case
15
+ require "#{require_base}/#{::UzuUzu.datastore.adapter}/#{id.to_s.snake_case}"
16
+ model = const_get("#{::UzuUzu.datastore.adapter.to_s.camel_case}").const_get("#{id}")
17
+ model.apploaded if model.respond_to?(:apploaded)
18
+ AppsLoaded[::UzuUzu.current.name][id.to_sym] = model
19
+ end
20
+ if model
21
+ model
22
+ else
23
+ super(id)
24
+ end
25
+ rescue => e
26
+ ::UzuUzu.logger.debug e
27
+ ::UzuUzu.logger.debug e.backtrace
28
+ super(id)
29
+ end
30
+
31
+ #
32
+ #
33
+ #
34
+ def method_missing(id)
35
+ model = self.const_missing(id.to_s.camel_case)
36
+ if model
37
+ model
38
+ else
39
+ super(id)
40
+ end
41
+ rescue => e
42
+ ::UzuUzu.logger.debug e
43
+ ::UzuUzu.logger.debug e.backtrace
44
+ super(id)
45
+ end
46
+
47
+ extend self
48
+ end # Model
49
+ end # UzuUzu
@@ -5,11 +5,127 @@ module UzuUzu
5
5
  #
6
6
  #
7
7
  class Response < Rack::Response
8
+ include ::UzuUzu::Helper::Controller
9
+
8
10
  #
9
11
  #
10
12
  #
11
13
  def self.current
12
14
  Thread.current[:response]
13
15
  end
16
+
17
+ #
18
+ #
19
+ #
20
+ def rack_mime_type(type, value=nil)
21
+ return type if type.nil? || type.to_s.include?('/')
22
+ type = ".#{type}" unless type.to_s[0] == ?.
23
+ return Rack::Mime.mime_type(type, nil) if value.nil?
24
+ Rack::Mime::MIME_TYPES[type] = value
25
+ end
26
+
27
+ #
28
+ #
29
+ #
30
+ def mime_type(mime)
31
+ @header["Content-Type"] = rack_mime_type(mime) || mime if mime
32
+ end
33
+
34
+ #
35
+ #
36
+ #
37
+ def respond(string, mime=nil, status=200)
38
+ @status = 200
39
+ mime_type(mime)
40
+ write string
41
+ throw :finish
42
+ end
43
+
44
+ #
45
+ #
46
+ #
47
+ def respond_to
48
+ return unless block_given?
49
+ @status = 200
50
+ contents = yield(request.wish)
51
+ respond(contents, request.wish) if contents and successful?
52
+ end
53
+
54
+ def send_file()
55
+
56
+ end
57
+
58
+ def send_binary()
59
+
60
+ end
61
+
62
+ #
63
+ #
64
+ #
65
+ def server_error(code=500, options={})
66
+ redirect "/error/#{code}"
67
+ end # error
68
+
69
+ #
70
+ #
71
+ #
72
+ def not_found(code=404, options={})
73
+ server_error(code, options)
74
+ end
75
+
76
+ #
77
+ #
78
+ #
79
+ def redirect(uri, options={})
80
+ if not uri =~ /^https?:\/\//
81
+ abs_uri = "#{request.scheme}://#{request.host}"
82
+
83
+ if request.scheme == 'https' && request.port != 443 ||
84
+ request.scheme == 'http' && request.port != 80
85
+ abs_uri << ":#{request.port}"
86
+ end
87
+ uri = (abs_uri << uri)
88
+ end
89
+ uri << query_string(options)
90
+ super(uri)
91
+ throw :finish
92
+ end # redirect
93
+
94
+ #
95
+ #
96
+ #
97
+ def last_modified(time)
98
+ return unless time
99
+ if time.respond_to?(:to_time)
100
+ time = time.to_time
101
+ else
102
+ time = ::Time.parse(time.to_s)
103
+ end
104
+ @header['Last-Modified'] = time.httpdate
105
+ if ::Time.httpdate(request.env['HTTP_IF_MODIFIED_SINCE']).to_i >= time.to_i
106
+ @status = 304
107
+ throw :finish
108
+ end
109
+ end # last_modified
110
+
111
+ #
112
+ #
113
+ #
114
+ def etag(value, kind=:strong)
115
+ raise ::TypeError, ":strong or :weak expected" if ![:strong,:weak].include?(kind)
116
+ value = '"%s"' % value
117
+ value = 'W/' + value if kind == :weak
118
+ @header['ETag'] = value
119
+
120
+ # Conditional GET check
121
+ if etags = request.env['HTTP_IF_NONE_MATCH']
122
+ etags = etags.split(/\s*,\s*/)
123
+ if etags.include?(value) || etags.include?('*')
124
+ @status = 304
125
+ throw :finish
126
+ end
127
+ end
128
+ end # etag
129
+
14
130
  end
15
131
  end
@@ -0,0 +1,48 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ module Service
5
+ AppsLoaded = {}
6
+ #
7
+ #
8
+ #
9
+ def const_missing(id)
10
+ AppsLoaded[::UzuUzu.current.name] ||= {}
11
+ service = AppsLoaded[::UzuUzu.current.name][id.to_sym]
12
+ unless service
13
+ require_base = self.name.gsub(/::/, '/').sub(/^UzuUzu/, 'uzuuzu').snake_case
14
+ require "#{require_base}/#{::UzuUzu.datastore.adapter}/#{id.to_s.snake_case}"
15
+ service = const_get("#{::UzuUzu.datastore.adapter.to_s.camel_case}").const_get("#{id}")
16
+ service.apploaded if service.respond_to?(:apsploaded)
17
+ AppsLoaded[::UzuUzu.current.name][id.to_sym] = service
18
+ end
19
+ if service
20
+ service
21
+ else
22
+ super(id)
23
+ end
24
+ rescue => e
25
+ ::UzuUzu.logger.debug e
26
+ ::UzuUzu.logger.debug e.backtrace
27
+ super(id)
28
+ end
29
+
30
+ #
31
+ #
32
+ #
33
+ def method_missing(id)
34
+ service = const_missing(id.to_s.camel_case)
35
+ if service
36
+ service.new
37
+ else
38
+ super(id)
39
+ end
40
+ rescue => e
41
+ ::UzuUzu.logger.debug e
42
+ ::UzuUzu.logger.debug e.backtrace
43
+ super(id)
44
+ end
45
+
46
+ extend self
47
+ end # Service
48
+ end # UzuUzu
@@ -62,6 +62,30 @@ module UzuUzu
62
62
  Environments.current.localize
63
63
  end
64
64
 
65
+ def controller
66
+ Controller.current
67
+ end
68
+
69
+ def helper
70
+ Helper.current
71
+ end
72
+
73
+ def request
74
+ Request.current
75
+ end
76
+
77
+ def response
78
+ Response.current
79
+ end
80
+
81
+ def model
82
+ Model
83
+ end
84
+
85
+ def service
86
+ Service
87
+ end
88
+
65
89
  #
66
90
  def render_engine(instance, view_string, engine='erb', options={}, locals={}, &block)
67
91
  Tilt.render_engine(instance, view_string, engine, options, locals, &block)
data/lib/uzuuzu_core.rb CHANGED
@@ -12,8 +12,10 @@ require 'uzuuzu/wrapper/logger'
12
12
  require 'uzuuzu/wrapper/wrapper'
13
13
  require 'uzuuzu/application'
14
14
  require 'uzuuzu/environments'
15
+ require 'uzuuzu/helper'
15
16
  require 'uzuuzu/request'
16
17
  require 'uzuuzu/response'
17
- require 'uzuuzu/helper'
18
18
  require 'uzuuzu/controller'
19
+ require 'uzuuzu/service'
20
+ require 'uzuuzu/model'
19
21
  require 'uzuuzu/tilt'
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.9"
8
+ s.version = "0.0.10"
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-09-21}
12
+ s.date = %q{2011-09-24}
13
13
  s.description = %q{uzuuzu core library}
14
14
  s.email = %q{takuya.v3v@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -36,7 +36,6 @@ Gem::Specification.new do |s|
36
36
  "lib/uzuuzu/datastore/sequel.rb",
37
37
  "lib/uzuuzu/environments.rb",
38
38
  "lib/uzuuzu/ext/object.rb",
39
- "lib/uzuuzu/fixture/datamapper.rb",
40
39
  "lib/uzuuzu/helper.rb",
41
40
  "lib/uzuuzu/helper/controller.rb",
42
41
  "lib/uzuuzu/helper/form.rb",
@@ -44,7 +43,6 @@ Gem::Specification.new do |s|
44
43
  "lib/uzuuzu/helper/localize.rb",
45
44
  "lib/uzuuzu/helper/renderer.rb",
46
45
  "lib/uzuuzu/helper/route.rb",
47
- "lib/uzuuzu/helper/uzuuzu.rb",
48
46
  "lib/uzuuzu/helper/xhtml.rb",
49
47
  "lib/uzuuzu/kvs/appengine.rb",
50
48
  "lib/uzuuzu/kvs/hbase.rb",
@@ -63,12 +61,14 @@ Gem::Specification.new do |s|
63
61
  "lib/uzuuzu/memcache/dalli.rb",
64
62
  "lib/uzuuzu/memcache/leveldb.rb",
65
63
  "lib/uzuuzu/memcache/memcached.rb",
64
+ "lib/uzuuzu/model.rb",
66
65
  "lib/uzuuzu/rack_session/appengine.rb",
67
66
  "lib/uzuuzu/rack_session/cookie.rb",
68
67
  "lib/uzuuzu/rack_session/datastore.rb",
69
68
  "lib/uzuuzu/rack_session/memcache.rb",
70
69
  "lib/uzuuzu/request.rb",
71
70
  "lib/uzuuzu/response.rb",
71
+ "lib/uzuuzu/service.rb",
72
72
  "lib/uzuuzu/tilt.rb",
73
73
  "lib/uzuuzu/wrapper/logger.rb",
74
74
  "lib/uzuuzu/wrapper/uzuuzu.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.9
5
+ version: 0.0.10
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-09-21 00:00:00 +09:00
13
+ date: 2011-09-24 00:00:00 +09:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -141,7 +141,6 @@ files:
141
141
  - lib/uzuuzu/datastore/sequel.rb
142
142
  - lib/uzuuzu/environments.rb
143
143
  - lib/uzuuzu/ext/object.rb
144
- - lib/uzuuzu/fixture/datamapper.rb
145
144
  - lib/uzuuzu/helper.rb
146
145
  - lib/uzuuzu/helper/controller.rb
147
146
  - lib/uzuuzu/helper/form.rb
@@ -149,7 +148,6 @@ files:
149
148
  - lib/uzuuzu/helper/localize.rb
150
149
  - lib/uzuuzu/helper/renderer.rb
151
150
  - lib/uzuuzu/helper/route.rb
152
- - lib/uzuuzu/helper/uzuuzu.rb
153
151
  - lib/uzuuzu/helper/xhtml.rb
154
152
  - lib/uzuuzu/kvs/appengine.rb
155
153
  - lib/uzuuzu/kvs/hbase.rb
@@ -168,12 +166,14 @@ files:
168
166
  - lib/uzuuzu/memcache/dalli.rb
169
167
  - lib/uzuuzu/memcache/leveldb.rb
170
168
  - lib/uzuuzu/memcache/memcached.rb
169
+ - lib/uzuuzu/model.rb
171
170
  - lib/uzuuzu/rack_session/appengine.rb
172
171
  - lib/uzuuzu/rack_session/cookie.rb
173
172
  - lib/uzuuzu/rack_session/datastore.rb
174
173
  - lib/uzuuzu/rack_session/memcache.rb
175
174
  - lib/uzuuzu/request.rb
176
175
  - lib/uzuuzu/response.rb
176
+ - lib/uzuuzu/service.rb
177
177
  - lib/uzuuzu/tilt.rb
178
178
  - lib/uzuuzu/wrapper/logger.rb
179
179
  - lib/uzuuzu/wrapper/uzuuzu.rb
@@ -196,7 +196,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
196
196
  requirements:
197
197
  - - ">="
198
198
  - !ruby/object:Gem::Version
199
- hash: 3127904207285325660
199
+ hash: 3259301030999928627
200
200
  segments:
201
201
  - 0
202
202
  version: "0"
@@ -1,114 +0,0 @@
1
- # coding: utf-8
2
-
3
- module UzuUzu
4
- module DataStore
5
- module Fixture
6
- def self.import_file(model, file, overwrite=false)
7
- unless ::File.file?(file)
8
- raise "UzuUzu fixture import error file not found : #{file}"
9
- end
10
- ext = ::File.extname(file)
11
- case(ext)
12
- when '.yml', '.yaml'
13
- import_yaml(model, ::YAML.load_file(file), overwrite)
14
- when '.xml'
15
- # TODO
16
- when '.json', '.js'
17
- # TODO
18
- when '.csv'
19
- begin
20
- require 'fastercsv'
21
- ::FasterCSV.foreach(file) do |row|
22
- import_csv(model, row, overwrite)
23
- end
24
- rescue
25
- require "csv"
26
- ::CSV.open(file) do |row|
27
- import_csv(model, row, overwrite)
28
- end
29
- end
30
- end
31
- nil
32
- end
33
-
34
- def self.import_yaml(model, yaml, overwrite=false)
35
- ::UzuUzu.logger.debug 'import yaml'
36
- ::UzuUzu.transaction do |tr|
37
- tr.begin
38
- begin
39
- if yaml.kind_of?(Array)
40
- yaml.each do |map|
41
- ::UzuUzu.logger.debug "import #{map.inspect}"
42
- resource = model.first(:id => map[:id]) unless map[:id].nil?
43
- if resource.nil?
44
- resource = model.new(map)
45
- unless resource.valid?
46
- ::UzuUzu.logger.error resource.errors
47
- end
48
- resource.save
49
- elsif overwrite
50
- resource.update(map)
51
- unless resource.valid?
52
- ::UzuUzu.logger.error resource.errors
53
- end
54
- end
55
- end
56
- elsif yaml.kind_of?(Hash)
57
- ::UzuUzu.logger.debug "import #{yaml.inspect}"
58
- resource = model.first(:id => yaml[:id]) unless yaml[:id].nil?
59
- if resource.nil?
60
- resource = model.new(yaml)
61
- unless resource.valid?
62
- ::UzuUzu.logger.error resource.errors
63
- end
64
- resource.save
65
- elsif overwrite
66
- resource.update(yaml)
67
- unless resource.valid?
68
- ::UzuUzu.logger.error resource.errors
69
- end
70
- end
71
- else
72
- ::UzuUzu.logger.error "import type miss match #{yaml.inspect}"
73
- end
74
- ::UzuUzu.logger.debug 'imported yaml'
75
- tr.commit
76
- rescue => e
77
- tr.rollback
78
- raise e
79
- end
80
- end # transaction
81
- end # import_yaml
82
-
83
- def self.import_json(model, json, overwrite=false)
84
- # TODO
85
- end
86
-
87
- def self.import_xml(model, xml, overwrite=false)
88
- # TODO
89
- end
90
-
91
- def self.import_csv(model, csv, overwrite=false)
92
- ::UzuUzu.transaction do |tr|
93
- tr.begin
94
- begin
95
- resource = model.first(:id => csv[0])
96
- csv.each_with_index do |culumn, index|
97
- if resource.nil? || overwrite
98
- resource ||= model.new
99
- resource.properties.each_with_index do |property, column_no|
100
- resource[property.name] = culumn if index = column_no
101
- end
102
- resource.save
103
- end
104
- end
105
- tr.commit
106
- rescue => e
107
- tr.rollback
108
- raise e
109
- end
110
- end
111
- end # import_csv
112
- end # Fixture
113
- end # DataStore
114
- end # UzuUzu
@@ -1,48 +0,0 @@
1
- # coding: utf-8
2
-
3
- module UzuUzu
4
- #
5
- #
6
- #
7
- module Helper
8
- #
9
- #
10
- #
11
- module UzuUzuHelper
12
- #
13
- #
14
- #
15
- def logger
16
- ::UzuUzu.logger
17
- end
18
-
19
- #
20
- #
21
- #
22
- def memcache
23
- ::UzuUzu.memcache
24
- end
25
-
26
- #
27
- #
28
- #
29
- def kvs
30
- ::UzuUzu.kvs
31
- end
32
-
33
- #
34
- #
35
- #
36
- def datastore
37
- ::UzuUzu.datastore
38
- end
39
-
40
- #
41
- #
42
- #
43
- def mailer
44
- ::UzuUzu.mailer
45
- end
46
- end # UzuUzuHelper
47
- end # Helper
48
- end # UzuUzu