uzuuzu-core 0.0.8 → 0.0.9
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/{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
|