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.
Files changed (49) hide show
  1. data/VERSION +1 -1
  2. data/lib/uzuuzu/{wrapper/application.rb → application.rb} +2 -1
  3. data/lib/uzuuzu/{wrapper/controller.rb → controller.rb} +1 -15
  4. data/lib/uzuuzu/controller/error.rb +11 -0
  5. data/lib/uzuuzu/controller/view/error/404.rhtml +6 -0
  6. data/lib/uzuuzu/controller/view/error/500.rhtml +6 -0
  7. data/lib/uzuuzu/datastore/activerecord.rb +1 -0
  8. data/lib/uzuuzu/datastore/datamapper.rb +116 -0
  9. data/lib/uzuuzu/datastore/sequel.rb +0 -0
  10. data/lib/uzuuzu/{wrapper/environments.rb → environments.rb} +29 -46
  11. data/lib/uzuuzu/{wrapper → ext}/object.rb +0 -0
  12. data/lib/uzuuzu/fixture/datamapper.rb +114 -0
  13. data/lib/uzuuzu/{wrapper/helper.rb → helper.rb} +1 -0
  14. data/lib/uzuuzu/helper/uzuuzu.rb +48 -0
  15. data/lib/uzuuzu/kvs/appengine.rb +65 -0
  16. data/lib/uzuuzu/kvs/hbase.rb +2 -0
  17. data/lib/uzuuzu/kvs/leveldb.rb +73 -0
  18. data/lib/uzuuzu/kvs/mongo.rb +68 -0
  19. data/lib/uzuuzu/{wrapper/lang → lang}/en.yaml +0 -0
  20. data/lib/uzuuzu/{wrapper/lang → lang}/ja.yaml +0 -0
  21. data/lib/uzuuzu/logger/appengine.rb +51 -0
  22. data/lib/uzuuzu/logger/file.rb +50 -0
  23. data/lib/uzuuzu/logger/loggers.rb +47 -0
  24. data/lib/uzuuzu/logger/stderr.rb +50 -0
  25. data/lib/uzuuzu/logger/stdout.rb +50 -0
  26. data/lib/uzuuzu/mailer/appengine.rb +27 -0
  27. data/lib/uzuuzu/mailer/tmail.rb +44 -0
  28. data/lib/uzuuzu/memcache/appengine.rb +29 -0
  29. data/lib/uzuuzu/memcache/dalli.rb +31 -0
  30. data/lib/uzuuzu/memcache/leveldb.rb +43 -0
  31. data/lib/uzuuzu/memcache/memcached.rb +23 -0
  32. data/lib/uzuuzu/rack_session/appengine.rb +40 -0
  33. data/lib/uzuuzu/rack_session/cookie.rb +25 -0
  34. data/lib/uzuuzu/rack_session/datastore.rb +22 -0
  35. data/lib/uzuuzu/rack_session/memcache.rb +67 -0
  36. data/lib/uzuuzu/{wrapper/request.rb → request.rb} +0 -0
  37. data/lib/uzuuzu/{wrapper/response.rb → response.rb} +0 -1
  38. data/lib/uzuuzu/{wrapper/tilt.rb → tilt.rb} +3 -3
  39. data/lib/uzuuzu/wrapper/logger.rb +23 -103
  40. data/lib/uzuuzu/wrapper/uzuuzu.rb +22 -42
  41. data/lib/uzuuzu/wrapper/wrapper.rb +31 -0
  42. data/lib/uzuuzu_core.rb +19 -0
  43. data/uzuuzu-core.gemspec +41 -17
  44. metadata +42 -18
  45. data/lib/uzuuzu-core.rb +0 -9
  46. data/lib/uzuuzu/uzuuzu-core.rb +0 -17
  47. data/lib/uzuuzu/wrapper/datastore.rb +0 -55
  48. data/lib/uzuuzu/wrapper/mailer.rb +0 -20
  49. data/lib/uzuuzu/wrapper/memcache.rb +0 -20
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.0.9
@@ -76,7 +76,7 @@ module UzuUzu
76
76
 
77
77
  def self.dicons
78
78
  @@dicons ||= [
79
- Controller,
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,11 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ module Controller
5
+ class Error
6
+ def index(code)
7
+ respond(render_file(__DIR__("view/error/#{code}.rhtml")))
8
+ end
9
+ end
10
+ end
11
+ end # UzuUzuCms
@@ -0,0 +1,6 @@
1
+
2
+ <html>
3
+ <body>
4
+ <%= localize(:not_found) %>
5
+ </body>
6
+ </html>
@@ -0,0 +1,6 @@
1
+
2
+ <html>
3
+ <body>
4
+ <%= localize(:server_error) %>
5
+ </body>
6
+ </html>
@@ -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 :memcache
16
+ attr_accessor :kvs
17
17
  #
18
- attr_accessor :mailler
18
+ attr_accessor :memcache
19
19
  #
20
- attr_accessor :gae
20
+ attr_accessor :mailer
21
21
  #
22
- attr_accessor :engine
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 = LoggerWrapper.new(env || {})
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
- unless @gae or @config.nil? or @config['datastore'].blank?
91
- case(@config['datastore']['adapter'])
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
- unless @gae or @config.nil? or @config['memcache'].blank?
105
- case(@config['memcache']['adapter'])
106
- when 'memcache-client'
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
- unless @gae or @config.nil? or @config['mailer'].blank?
119
- case(@config['mailer']['adapter'])
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 repository(&b)
131
- datastore.uzuuzu_repository(&b)
132
- end # repository
133
-
134
- def transaction(*args, &b)
135
- datastore.uzuuzu_transaction(*args, &b)
136
- end # transaction
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