uzuuzu-core 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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