uzuuzu-core 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/uzuuzu/{wrapper/application.rb → application.rb} +2 -1
- data/lib/uzuuzu/{wrapper/controller.rb → controller.rb} +1 -15
- data/lib/uzuuzu/controller/error.rb +11 -0
- data/lib/uzuuzu/controller/view/error/404.rhtml +6 -0
- data/lib/uzuuzu/controller/view/error/500.rhtml +6 -0
- data/lib/uzuuzu/datastore/activerecord.rb +1 -0
- data/lib/uzuuzu/datastore/datamapper.rb +116 -0
- data/lib/uzuuzu/datastore/sequel.rb +0 -0
- data/lib/uzuuzu/{wrapper/environments.rb → environments.rb} +29 -46
- data/lib/uzuuzu/{wrapper → ext}/object.rb +0 -0
- data/lib/uzuuzu/fixture/datamapper.rb +114 -0
- data/lib/uzuuzu/{wrapper/helper.rb → helper.rb} +1 -0
- data/lib/uzuuzu/helper/uzuuzu.rb +48 -0
- data/lib/uzuuzu/kvs/appengine.rb +65 -0
- data/lib/uzuuzu/kvs/hbase.rb +2 -0
- data/lib/uzuuzu/kvs/leveldb.rb +73 -0
- data/lib/uzuuzu/kvs/mongo.rb +68 -0
- data/lib/uzuuzu/{wrapper/lang → lang}/en.yaml +0 -0
- data/lib/uzuuzu/{wrapper/lang → lang}/ja.yaml +0 -0
- data/lib/uzuuzu/logger/appengine.rb +51 -0
- data/lib/uzuuzu/logger/file.rb +50 -0
- data/lib/uzuuzu/logger/loggers.rb +47 -0
- data/lib/uzuuzu/logger/stderr.rb +50 -0
- data/lib/uzuuzu/logger/stdout.rb +50 -0
- data/lib/uzuuzu/mailer/appengine.rb +27 -0
- data/lib/uzuuzu/mailer/tmail.rb +44 -0
- data/lib/uzuuzu/memcache/appengine.rb +29 -0
- data/lib/uzuuzu/memcache/dalli.rb +31 -0
- data/lib/uzuuzu/memcache/leveldb.rb +43 -0
- data/lib/uzuuzu/memcache/memcached.rb +23 -0
- data/lib/uzuuzu/rack_session/appengine.rb +40 -0
- data/lib/uzuuzu/rack_session/cookie.rb +25 -0
- data/lib/uzuuzu/rack_session/datastore.rb +22 -0
- data/lib/uzuuzu/rack_session/memcache.rb +67 -0
- data/lib/uzuuzu/{wrapper/request.rb → request.rb} +0 -0
- data/lib/uzuuzu/{wrapper/response.rb → response.rb} +0 -1
- data/lib/uzuuzu/{wrapper/tilt.rb → tilt.rb} +3 -3
- data/lib/uzuuzu/wrapper/logger.rb +23 -103
- data/lib/uzuuzu/wrapper/uzuuzu.rb +22 -42
- data/lib/uzuuzu/wrapper/wrapper.rb +31 -0
- data/lib/uzuuzu_core.rb +19 -0
- data/uzuuzu-core.gemspec +41 -17
- metadata +42 -18
- data/lib/uzuuzu-core.rb +0 -9
- data/lib/uzuuzu/uzuuzu-core.rb +0 -17
- data/lib/uzuuzu/wrapper/datastore.rb +0 -55
- data/lib/uzuuzu/wrapper/mailer.rb +0 -20
- data/lib/uzuuzu/wrapper/memcache.rb +0 -20
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.9
|
@@ -76,7 +76,7 @@ module UzuUzu
|
|
76
76
|
|
77
77
|
def self.dicons
|
78
78
|
@@dicons ||= [
|
79
|
-
|
79
|
+
Helper::UzuUzuHelper,
|
80
80
|
Helper::Controller,
|
81
81
|
Helper::Renderer,
|
82
82
|
Helper::Localize,
|
@@ -90,6 +90,7 @@ module UzuUzu
|
|
90
90
|
|
91
91
|
def self.helpers
|
92
92
|
@@helpers ||= [
|
93
|
+
Helper::UzuUzuHelper,
|
93
94
|
Helper::Controller,
|
94
95
|
Helper::Form,
|
95
96
|
Helper::Jquery,
|
@@ -2,30 +2,16 @@
|
|
2
2
|
|
3
3
|
module UzuUzu
|
4
4
|
module Controller
|
5
|
+
autoload(:Error, 'uzuuzu/controller/error')
|
5
6
|
def self.current
|
6
7
|
Thread.current[:controller]
|
7
8
|
end
|
8
9
|
|
9
10
|
def self.before_all
|
10
|
-
::UzuUzu.datastore
|
11
11
|
::UzuUzu.logger.debug ::UzuUzu::Request.current.params
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.after_all
|
15
15
|
end
|
16
|
-
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
def logger
|
21
|
-
UzuUzu.logger
|
22
|
-
end
|
23
|
-
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
def memcache
|
28
|
-
UzuUzu.memcache
|
29
|
-
end
|
30
16
|
end # Controller
|
31
17
|
end # UzuUzu
|
@@ -0,0 +1 @@
|
|
1
|
+
#TODO
|
@@ -0,0 +1,116 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'dm-core'
|
3
|
+
|
4
|
+
module UzuUzu
|
5
|
+
module Datastore
|
6
|
+
class Datamapper
|
7
|
+
#
|
8
|
+
attr_reader :adapter
|
9
|
+
#
|
10
|
+
attr_reader :repository
|
11
|
+
#
|
12
|
+
attr_reader :auto_upgrade
|
13
|
+
#
|
14
|
+
attr_reader :repositories
|
15
|
+
|
16
|
+
#
|
17
|
+
#
|
18
|
+
#
|
19
|
+
def initialize(env=nil)
|
20
|
+
if env.nil?
|
21
|
+
return
|
22
|
+
end
|
23
|
+
@adapter = :datamapper
|
24
|
+
|
25
|
+
if env['auto_upgrade'] == 'true' || env['auto_upgrade'] = true
|
26
|
+
@auto_upgrade = true
|
27
|
+
end
|
28
|
+
|
29
|
+
if env['repository'].nil?
|
30
|
+
@repository = :uzuuzu
|
31
|
+
else
|
32
|
+
@repository = env['repository'].to_sym
|
33
|
+
end
|
34
|
+
|
35
|
+
@auto_upgrade = false
|
36
|
+
if env['auto_upgrade']
|
37
|
+
@auto_upgrade = true if env['auto_upgrade'] == 'true' || env['auto_upgrade'] == true
|
38
|
+
end
|
39
|
+
|
40
|
+
unless env['logger'].nil?
|
41
|
+
DataMapper::logger = ::UzuUzu::Wrapper::Logger.new(env['logger']).logger
|
42
|
+
end
|
43
|
+
|
44
|
+
@repositories = [@repository]
|
45
|
+
repositories_env = {}
|
46
|
+
repos = env['repositories'] || {}
|
47
|
+
if repos.nil?
|
48
|
+
repos = {}
|
49
|
+
end
|
50
|
+
|
51
|
+
repos.each do |key, value|
|
52
|
+
@repositories.push key.to_sym
|
53
|
+
repositories_env[key.to_sym] = value.clone
|
54
|
+
end
|
55
|
+
|
56
|
+
if repositories_env[@repository].blank?
|
57
|
+
repositories_env[@repository] = repositories_env[:default]
|
58
|
+
elsif repositories_env[:default].blank?
|
59
|
+
repositories_env[:default] = repositories_env[@repository]
|
60
|
+
end
|
61
|
+
|
62
|
+
repositories_env.each do |key, value|
|
63
|
+
if value['adapter']
|
64
|
+
DataMapper.setup(key, value)
|
65
|
+
if value['logger']
|
66
|
+
case(value['adapter'])
|
67
|
+
when 'sqlite3'
|
68
|
+
DataObjects::Sqlite3.logger = ::UzuUzu::Wrapper::Logger.new(value['logger']).logger
|
69
|
+
when 'postgres'
|
70
|
+
DataObjects::Postgres.logger = ::UzuUzu::Wrapper::Logger.new(value['logger']).logger
|
71
|
+
when 'mysql'
|
72
|
+
DataObjects::MySql.logger = ::UzuUzu::Wrapper::Logger.new(value['logger']).logger
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end # new
|
78
|
+
|
79
|
+
#
|
80
|
+
#
|
81
|
+
#
|
82
|
+
def repository(repository=nil, &b)
|
83
|
+
repository ||= @repository
|
84
|
+
if b
|
85
|
+
DataMapper.repository(repository, &b)
|
86
|
+
else
|
87
|
+
DataMapper.repository(repository)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
#
|
92
|
+
#
|
93
|
+
#
|
94
|
+
def transaction(repository=nil, *args, &b)
|
95
|
+
tr = DataMapper::Transaction.new(*args)
|
96
|
+
if b
|
97
|
+
DataMapper.repository(repository) do
|
98
|
+
b.call(tr)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
tr
|
102
|
+
end
|
103
|
+
|
104
|
+
#
|
105
|
+
#
|
106
|
+
#
|
107
|
+
def auto_upgrade?
|
108
|
+
if @auto_upgrade == true
|
109
|
+
return true
|
110
|
+
end
|
111
|
+
false
|
112
|
+
end
|
113
|
+
|
114
|
+
end # Datamapper
|
115
|
+
end # DataStore
|
116
|
+
end # UzuUzu
|
File without changes
|
@@ -13,13 +13,13 @@ module UzuUzu
|
|
13
13
|
#
|
14
14
|
attr_accessor :datastore
|
15
15
|
#
|
16
|
-
attr_accessor :
|
16
|
+
attr_accessor :kvs
|
17
17
|
#
|
18
|
-
attr_accessor :
|
18
|
+
attr_accessor :memcache
|
19
19
|
#
|
20
|
-
attr_accessor :
|
20
|
+
attr_accessor :mailer
|
21
21
|
#
|
22
|
-
attr_accessor :
|
22
|
+
attr_accessor :rack_session
|
23
23
|
#
|
24
24
|
attr_accessor :config
|
25
25
|
#
|
@@ -52,14 +52,7 @@ module UzuUzu
|
|
52
52
|
def setup(map)
|
53
53
|
return if map.blank?
|
54
54
|
@config = map
|
55
|
-
if map['gae'].blank?
|
56
|
-
@gae = false
|
57
|
-
else
|
58
|
-
@gae = true
|
59
|
-
require 'uzuuzu/adapter/gae'
|
60
|
-
end
|
61
55
|
@lang = map['lang'] || 'ja'
|
62
|
-
@engine = map['engine'] || 'erb'
|
63
56
|
load_localize
|
64
57
|
end
|
65
58
|
|
@@ -79,61 +72,51 @@ module UzuUzu
|
|
79
72
|
|
80
73
|
def logger
|
81
74
|
if @logger.nil?
|
82
|
-
env = @config['logger'] unless @config.nil?
|
83
|
-
@logger =
|
75
|
+
env = @config['logger'].clone unless @config.nil?
|
76
|
+
@logger = Wrapper::Logger.new(env || {}).logger
|
84
77
|
end
|
85
78
|
@logger
|
86
79
|
end
|
87
80
|
|
88
81
|
def datastore
|
89
82
|
if @datastore.nil?
|
90
|
-
|
91
|
-
|
92
|
-
when 'datamapper'
|
93
|
-
require 'uzuuzu/adapter/datamapper'
|
94
|
-
end
|
95
|
-
end
|
96
|
-
env = @config['datastore'] unless @config.nil?
|
97
|
-
@datastore = DataStoreWrapper.new(env || {})
|
83
|
+
env = @config['datastore'].clone unless @config.nil?
|
84
|
+
@datastore = Wrapper::Wrapper.new('datastore', env || {}).wrapper
|
98
85
|
end
|
99
86
|
@datastore
|
100
87
|
end
|
101
88
|
|
89
|
+
def kvs
|
90
|
+
if @kvs.nil?
|
91
|
+
env = @config['kvs'].clone unless @config.nil?
|
92
|
+
@kvs = Wrapper::Wrapper.new('kvs', env || {}).wrapper
|
93
|
+
end
|
94
|
+
@kvs
|
95
|
+
end
|
96
|
+
|
102
97
|
def memcache
|
103
98
|
if @memcache.nil?
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
require 'uzuuzu/adapter/memcache-client'
|
108
|
-
end
|
109
|
-
end
|
110
|
-
env = @config['memcache'] unless @config.nil?
|
111
|
-
@memcache = MemcacheWrapper.new(env || {})
|
99
|
+
env = @config['memcache'].clone unless @config.nil?
|
100
|
+
@memcache = Wrapper::Wrapper.new('memcache', env || {}).wrapper
|
101
|
+
@memcache ||= {}
|
112
102
|
end
|
113
103
|
@memcache
|
114
104
|
end
|
115
105
|
|
116
106
|
def mailler
|
117
107
|
if @mailer.nil?
|
118
|
-
|
119
|
-
|
120
|
-
when 'tmail'
|
121
|
-
require 'uzuuzu/adapter/tmail'
|
122
|
-
end
|
123
|
-
end
|
124
|
-
env = @config['mailer'] unless @config.nil?
|
125
|
-
@mailer = MailerWrapper.new(env || {})
|
108
|
+
env = @config['mailer'].clone unless @config.nil?
|
109
|
+
@mailer = Wrapper::Wrapper.new('mailer', env || {}).wrapper
|
126
110
|
end
|
127
111
|
@mailer
|
128
112
|
end # mailler
|
129
|
-
|
130
|
-
def
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
end #
|
137
|
-
|
113
|
+
|
114
|
+
def rack_session
|
115
|
+
if @rack_session.nil?
|
116
|
+
env = @config['rack_session'].clone unless @config.nil?
|
117
|
+
@rack_session = Wrapper::Wrapper.new('rack_session', env || {}).wrapper
|
118
|
+
end
|
119
|
+
@rack_session
|
120
|
+
end # rack_session
|
138
121
|
end # Environments
|
139
122
|
end # UzuUzu
|
File without changes
|
@@ -0,0 +1,114 @@
|
|
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
|
@@ -8,6 +8,7 @@ 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')
|
11
12
|
autoload(:XHtml, 'uzuuzu/helper/xhtml')
|
12
13
|
|
13
14
|
def self.current
|