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.
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