uzuuzu-core 0.0.4 → 0.0.5

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 (56) hide show
  1. data/.redcar/tags +145 -0
  2. data/Gemfile +10 -6
  3. data/Gemfile.lock +14 -10
  4. data/VERSION +1 -1
  5. data/lib/uzuuzu-core.rb +5 -1
  6. data/lib/uzuuzu/controller/admin.rb +11 -0
  7. data/lib/uzuuzu/controller/contents.rb +11 -0
  8. data/lib/uzuuzu/controller/crud.rb +235 -0
  9. data/lib/uzuuzu/controller/css.rb +11 -0
  10. data/lib/uzuuzu/controller/error.rb +11 -0
  11. data/lib/uzuuzu/controller/index.rb +25 -0
  12. data/lib/uzuuzu/controller/initialize.rb +52 -0
  13. data/lib/uzuuzu/controller/javascript.rb +11 -0
  14. data/lib/uzuuzu/controller/oauth.rb +10 -0
  15. data/lib/uzuuzu/controller/openid.rb +40 -0
  16. data/lib/uzuuzu/controller/page.rb +14 -0
  17. data/lib/uzuuzu/controller/plugin.rb +11 -0
  18. data/lib/uzuuzu/controller/user.rb +22 -0
  19. data/lib/uzuuzu/controller/view/admin/index.xhtml +0 -0
  20. data/lib/uzuuzu/controller/view/crud/destroy.rhtml +28 -0
  21. data/lib/uzuuzu/controller/view/crud/edit.rhtml +52 -0
  22. data/lib/uzuuzu/controller/view/crud/index.rhtml +45 -0
  23. data/lib/uzuuzu/controller/view/crud/new.rhtml +48 -0
  24. data/lib/uzuuzu/controller/view/crud/show.rhtml +47 -0
  25. data/lib/uzuuzu/controller/view/error/404.tenjin +0 -0
  26. data/lib/uzuuzu/controller/view/initialize/step1.xhtml +30 -0
  27. data/lib/uzuuzu/controller/view/initialize/step2.xhtml +1 -0
  28. data/lib/uzuuzu/controller/view/initialize/step3.xhtml +0 -0
  29. data/lib/uzuuzu/controller/view/openid/index.xhtml +14 -0
  30. data/lib/uzuuzu/controller/view/page.xhtml +17 -0
  31. data/lib/uzuuzu/controller/view/user/entry.xhtml +13 -0
  32. data/lib/uzuuzu/fixture/layout.yaml +110 -0
  33. data/lib/uzuuzu/helper/controller.rb +135 -0
  34. data/lib/uzuuzu/helper/fixture.rb +9 -0
  35. data/lib/uzuuzu/helper/localize.rb +15 -0
  36. data/lib/uzuuzu/helper/renderer.rb +158 -0
  37. data/lib/uzuuzu/helper/route.rb +62 -0
  38. data/lib/uzuuzu/helper/uzuuzu_page.rb +61 -0
  39. data/lib/uzuuzu/helper/xhtml.rb +44 -0
  40. data/lib/uzuuzu/model/.DS_Store +0 -0
  41. data/lib/uzuuzu/model/remote_user.rb +70 -0
  42. data/lib/uzuuzu/uzuuzu-core.rb +10 -1
  43. data/lib/uzuuzu/wrapper/application.rb +282 -0
  44. data/lib/uzuuzu/wrapper/controller.rb +28 -80
  45. data/lib/uzuuzu/wrapper/datastore.rb +17 -0
  46. data/lib/uzuuzu/wrapper/environments.rb +129 -0
  47. data/lib/uzuuzu/wrapper/helper.rb +13 -0
  48. data/lib/uzuuzu/wrapper/lang/en.yaml +19 -0
  49. data/lib/uzuuzu/wrapper/lang/ja.yaml +19 -0
  50. data/lib/uzuuzu/wrapper/logger.rb +95 -21
  51. data/lib/uzuuzu/wrapper/object.rb +9 -0
  52. data/lib/uzuuzu/wrapper/request.rb +26 -0
  53. data/lib/uzuuzu/wrapper/response.rb +16 -0
  54. data/lib/uzuuzu/wrapper/uzuuzu.rb +26 -146
  55. data/uzuuzu-core.gemspec +71 -14
  56. metadata +104 -15
@@ -1,87 +1,35 @@
1
-
1
+ # coding: utf-8
2
2
 
3
3
  module UzuUzu
4
4
  module Controller
5
- def self.included(controller)
6
- controller.class_eval do
7
- provide(:csv, :type => 'application/json') do |action, obj|
8
- action.instance.instance_variable_get(:@uzuuzu_respond_to_csv)
9
- end
10
- provide(:json, :type => 'application/json') do |action, obj|
11
- action.instance.instance_variable_get(:@uzuuzu_respond_to_json)
12
- end
13
- provide(:xml, :type => 'application/xml') do |action, obj|
14
- action.instance.instance_variable_get(:@uzuuzu_respond_to_xml)
15
- end
16
- provide(:yaml, :type => 'application/yaml') do |action, obj|
17
- action.instance.instance_variable_get(:@uzuuzu_respond_to_yaml)
18
- end
19
-
20
- before_all do
21
- uzuuzu_initialize
22
- end
23
- end
24
- end
25
-
26
- def respond_to(&b)
27
- if b.nil?
28
- return
29
- end
30
- wish = action.wish.to_sym
31
- case(wish)
32
- when :html
33
- b.call(wish)
34
- when :xml
35
- @uzuuzu_respond_to_xml = b.call(wish)
36
- when :json
37
- @uzuuzu_respond_to_json = b.call(wish)
38
- when :yaml
39
- @uzuuzu_respond_to_yaml = b.call(wish)
40
- when :css
41
- @uzuuzu_respond_to_css = b.call(wish)
42
- end
5
+ autoload(:Admin, 'uzuuzu/controller/admin')
6
+ autoload(:Contents, 'uzuuzu/controller/contents')
7
+ autoload(:Crud, 'uzuuzu/controller/crud')
8
+ autoload(:Css, 'uzuuzu/controller/css')
9
+ autoload(:Error, 'uzuuzu/controller/error')
10
+ autoload(:Index, 'uzuuzu/controller/index')
11
+ autoload(:Initialize, 'uzuuzu/controller/initialize')
12
+ autoload(:Javascript, 'uzuuzu/controller/javascript')
13
+ autoload(:Oauth, 'uzuuzu/controller/oauth')
14
+ autoload(:Openid, 'uzuuzu/controller/openid')
15
+ autoload(:Page, 'uzuuzu/controller/page')
16
+ autoload(:Plugin, 'uzuuzu/controller/plugin')
17
+ autoload(:User, 'uzuuzu/controller/user')
18
+
19
+ def self.current
20
+ Thread.current[:controller]
43
21
  end
44
-
45
- def uzuuzu_map
46
- if @uzuuzu_map.nil?
47
- @uzuuzu_map = {}
48
- end
49
- @uzuuzu_map
22
+
23
+ def self.before_all
24
+ UzuUzu.datastore
25
+ before_logger
50
26
  end
51
-
52
- def uzuuzu_initialize
53
- uzuuzu_map[:title] = memcache.get(:uzuuzu_info_title)
54
- if uzuuzu_map[:title].nil?
55
- info = Info.uniq
56
- unless info.nil?
57
- uzuuzu_map[:title] = info.title
58
- memcache.set(:uzuuzu_info_title, uzuuzu_map[:title])
59
- end
60
- end
27
+
28
+ def self.after_all
61
29
  end
62
-
63
- def remote_user
64
- if uzuuzu_map[:remote_user].nil?
65
- uzuuzu_map[:remote_user] = session[:remote_user]
66
- unless uzuuzu_map[:remote_user].nil?
67
- uzuuzu_map[:remote_user] = nil unless uzuuzu_map[:remote_user].authorize?
68
- end
69
- end
70
- uzuuzu_map[:remote_user]
71
- end
72
-
73
- def admin?
74
- if remote_user.nil?
75
- false
76
- end
77
- remote_user.admin?
78
- end
79
-
80
- def authorize?
81
- if remote_user.nil?
82
- false
83
- end
84
- remote_user.authorize?
30
+
31
+ def self.before_logger
32
+ UzuUzu.logger.debug UzuUzu::Request.current.params
85
33
  end
86
- end
87
- end
34
+ end # Controller
35
+ end # UzuUzu
@@ -34,5 +34,22 @@ module UzuUzu
34
34
  @auto_upgrade
35
35
  end
36
36
 
37
+ #
38
+ #
39
+ #TODO more logger
40
+ #
41
+ def create_logger(env)
42
+ case(env['adapter'])
43
+ when 'file'
44
+ logger = file_logger(env)
45
+ when 'stderr'
46
+ logger = stderr_logger(env)
47
+ when 'stdout'
48
+ logger = stdout_logger(env)
49
+ end
50
+ logger
51
+ end
52
+
53
+
37
54
  end # DataBaseWrapper
38
55
  end # UzuUzu
@@ -0,0 +1,129 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ #
5
+ #
6
+ #
7
+ class Environments
8
+
9
+ #
10
+ DEFAULT_YAML = 'uzuuzu.yaml'
11
+ #
12
+ attr_accessor :logger
13
+ #
14
+ attr_accessor :datastore
15
+ #
16
+ attr_accessor :memcache
17
+ #
18
+ attr_accessor :mailler
19
+ #
20
+ attr_accessor :gae
21
+ #
22
+ attr_accessor :engine
23
+ #
24
+ attr_accessor :config
25
+ #
26
+ attr_accessor :lang
27
+ #
28
+ attr_accessor :localize
29
+
30
+ def self.current
31
+ UzuUzu.current.environments
32
+ end
33
+
34
+ def self.default_yaml=(yaml)
35
+ @@yaml = yaml
36
+ end
37
+
38
+ def self.default_yaml
39
+ @@yaml ||= DEFAULT_YAML
40
+ end
41
+
42
+ def initialize(yaml=nil)
43
+ load_yaml(yaml||self.class.default_yaml)
44
+ end
45
+
46
+ def load_yaml(yaml)
47
+ return if yaml.blank?
48
+ yaml = YAML.load_file(yaml) unless yaml.kind_of?(Hash)
49
+ setup(yaml)
50
+ end
51
+
52
+ def setup(map)
53
+ return if map.blank?
54
+ @config = map
55
+ if map['gae'].blank?
56
+ @gae = false
57
+ else
58
+ @gae = true
59
+ require 'uzuuzu/adapter/gae'
60
+ end
61
+ @lang = map['lang'] || 'ja'
62
+ @engine = map['engine'] || 'erubis'
63
+ load_localize
64
+ end
65
+
66
+ def load_localize
67
+ @localize = YAML.load_file(__DIR__("lang/#{@lang}.yaml"))
68
+ end
69
+
70
+ def logger
71
+ if @logger.nil?
72
+ env = @config['logger'] unless @config.nil?
73
+ @logger = UzuUzu::LoggerWrapper.new(env || {})
74
+ end
75
+ @logger
76
+ end
77
+
78
+ def datastore
79
+ if @datastore.nil?
80
+ unless @gae or @config.nil? or @config['datastore'].blank?
81
+ case(@config['datastore']['adapter'])
82
+ when 'datamapper'
83
+ require 'uzuuzu/adapter/datamapper'
84
+ end
85
+ end
86
+ env = @config['datastore'] unless @config.nil?
87
+ @datastore = UzuUzu::DataStoreWrapper.new(env || {})
88
+ end
89
+ @datastore
90
+ end
91
+
92
+ def memcache
93
+ if @memcache.nil?
94
+ unless @gae or @config.nil? or @config['memcache'].blank?
95
+ case(@config['memcache']['adapter'])
96
+ when 'memcache-client'
97
+ require 'uzuuzu/adapter/memcache-client'
98
+ end
99
+ end
100
+ env = @config['memcache'] unless @config.nil?
101
+ @memcache = UzuUzu::MemcacheWrapper.new(env || {})
102
+ end
103
+ @memcache
104
+ end
105
+
106
+ def mailler
107
+ if @mailer.nil?
108
+ unless @gae or @config.nil? or @config['mailer'].blank?
109
+ case(@config['mailer']['adapter'])
110
+ when 'tmail'
111
+ require 'uzuuzu/adapter/tmail'
112
+ end
113
+ end
114
+ env = @config['mailer'] unless @config.nil?
115
+ @mailer = UzuUzu::MailerWrapper.new(env || {})
116
+ end
117
+ @mailer
118
+ end # mailler
119
+
120
+ def repository(&b)
121
+ datastore.uzuuzu_repository(&b)
122
+ end # repository
123
+
124
+ def transaction(*args, &b)
125
+ datastore.uzuuzu_transaction(*args, &b)
126
+ end # transaction
127
+
128
+ end # Environments
129
+ end # UzuUzu
@@ -0,0 +1,13 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ module Helper
5
+ autoload(:Controller, 'uzuuzu/helper/controller')
6
+ autoload(:Fixture, 'uzuuzu/helper/fixture')
7
+ autoload(:Localize, 'uzuuzu/helper/localize')
8
+ autoload(:Renderer, 'uzuuzu/helper/renderer')
9
+ autoload(:Route, 'uzuuzu/helper/route')
10
+ autoload(:UzuUzuPage, 'uzuuzu/helper/uzuuzu_page')
11
+ autoload(:XHtml, 'uzuuzu/helper/xhtml')
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+
2
+ # common
3
+ create: Create
4
+ entry: Entry
5
+ update: Update
6
+ delete: Delete
7
+
8
+ login: Login
9
+
10
+ # openid
11
+ openid_messege: Choice!
12
+ openid_url: Other OpenId URL
13
+
14
+ # user entry
15
+ user_entry: Please Entry
16
+ user_entry_name: Display Name
17
+
18
+
19
+
@@ -0,0 +1,19 @@
1
+
2
+ # common
3
+ create: 作成
4
+ entry: 登録
5
+ update: 更新
6
+ delete: 削除
7
+
8
+ login: ログイン
9
+
10
+ # openid
11
+ openid_messege: ログイン方法を選択してください
12
+ openid_url: その他OpenId
13
+
14
+ # user entry
15
+ user_entry: ユーザー情報を登録してください
16
+ user_entry_name: 表示するユーザー名
17
+
18
+
19
+
@@ -1,37 +1,111 @@
1
-
1
+ require 'logger'
2
2
 
3
3
  module UzuUzu
4
4
  class LoggerWrapper
5
- DEBUG = [:debug, :error, :info, :warn]
6
- INFO = [:error, :info, :warn]
7
- WARN = [:error, :warn]
8
- ERROR = [:error]
9
-
5
+ attr_reader :loggers
6
+
7
+ #
8
+ #
9
+ #
10
10
  def initialize(env=nil, options={})
11
11
  logger_env = env.clone
12
12
  unless logger_env.kind_of?(Array)
13
13
  logger_env = [logger_env]
14
14
  end
15
+ @loggers = []
15
16
  logger_env.each do |logger|
16
- level = ERROR
17
- case(logger['level'])
18
- when "debug"
19
- level = DEBUG
20
- when "info"
21
- level = INFO
22
- when "warn"
23
- level = WARN
24
- end
25
- case(logger['adapter'])
26
- when 'file'
27
- Ramaze::Log.loggers << Ramaze::Logger::Informer.new(logger['address'], level)
28
- #Logger.new(env['address'], env['rotate'], env['rotate_size'] * 1024)
17
+ @loggers << create_logger(logger)
18
+ end
19
+ end
20
+
21
+ #
22
+ #
23
+ #
24
+ def method_missing(action, *args)
25
+ @loggers.each do |logger|
26
+ begin
27
+ args.each do |message|
28
+ message = message.to_str if message.respond_to?(:to_str)
29
+ message = message.inspect unless message.instance_of?(String)
30
+ logger.send(action, message)
31
+ end
32
+ rescue => e
33
+ # puts standerd error output
34
+ $stderr.puts 'logger send error'
35
+ $stderr.puts e
36
+ $stderr.puts e.backtrace
29
37
  end
30
38
  end
31
39
  end
40
+
41
+ #
42
+ #
43
+ #TODO:: more logger
44
+ #
45
+ def create_logger(env)
46
+ case(env['adapter'])
47
+ when 'file'
48
+ logger = file_logger(env)
49
+ when 'stderr'
50
+ logger = stderr_logger(env)
51
+ when 'stdout'
52
+ logger = stdout_logger(env)
53
+ when 'syslog'
54
+ when 'growl'
55
+ when 'analogger'
56
+ end
57
+ logger
58
+ end # create_logger
59
+
60
+ #
61
+ #
62
+ #
63
+ def stderr_logger(env)
64
+ logger = Logger.new($stderr)
65
+ default_level_setting(logger, env)
66
+ end
32
67
 
33
- def method_missing(action, *args)
34
- Ramaze::Log.send(action, *args)
68
+ #
69
+ #
70
+ #
71
+ def stdout_logger(env)
72
+ logger = Logger.new($stdout)
73
+ default_level_setting(logger, env)
74
+ end
75
+
76
+
77
+ #
78
+ #
79
+ #
80
+ def file_logger(env)
81
+ out = env['path']
82
+ rotate = (env['rotate'] || 0).to_i
83
+ rotate_size = (env['rotate_size'] || 0).to_i * 1024
84
+ FileUtils.mkdir_p(File.dirname(out))
85
+ logger = Logger.new(out, rotate, rotate_size)
86
+ default_level_setting(logger, env)
87
+ end # file_logger
88
+
89
+ #
90
+ #
91
+ #
92
+ def default_level_setting(logger, env)
93
+ level = env['level'] || :debug
94
+ case(level.to_sym)
95
+ when :info
96
+ logger.level = Logger::Severity::INFO
97
+ when :warn
98
+ logger.level = Logger::Severity::WARN
99
+ when :error
100
+ logger.level = Logger::Severity::ERROR
101
+ when :fatal
102
+ logger.level = Logger::Severity::FATAL
103
+ when :unknown
104
+ logger.level = Logger::Severity::UNKNOWN
105
+ else
106
+ logger.level = Logger::Severity::DEBUG
107
+ end
108
+ logger
35
109
  end
36
110
  end
37
111
  end