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
@@ -0,0 +1,50 @@
1
+ # coding: utf-8
2
+ require 'logger'
3
+
4
+ module UzuUzu
5
+ module Logger
6
+ class Stdout
7
+ #
8
+ attr_reader :adapter
9
+ #
10
+ #
11
+ #
12
+ def initialize(env=nil)
13
+ @adapter = :stdout
14
+ @logger = ::Logger.new($stdout)
15
+ level = env['level'] || :debug
16
+ case(level.to_sym)
17
+ when :info
18
+ @logger.level = ::Logger::Severity::INFO
19
+ when :warn
20
+ @logger.level = ::Logger::Severity::WARN
21
+ when :error
22
+ @logger.level = ::Logger::Severity::ERROR
23
+ when :fatal
24
+ @logger.level = ::Logger::Severity::FATAL
25
+ when :unknown
26
+ @logger.level = ::Logger::Severity::UNKNOWN
27
+ else
28
+ @logger.level = ::Logger::Severity::DEBUG
29
+ end
30
+ end # initialize
31
+ #
32
+ #
33
+ #
34
+ def method_missing(action, *args)
35
+ begin
36
+ args.each do |message|
37
+ message = message.to_str if message.respond_to?(:to_str)
38
+ message = message.inspect unless message.instance_of?(String)
39
+ @logger.send(action, message)
40
+ end
41
+ rescue => e
42
+ # puts standerd error output
43
+ $stderr.puts 'logger unknown error'
44
+ $stderr.puts e
45
+ end
46
+ end # method_missing
47
+
48
+ end # Stdout
49
+ end # Logger
50
+ end # UzuUzu
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ require 'appengine-apis'
3
+ require 'appengine-apis/mail'
4
+
5
+ module UzuUzu
6
+ module Mailer
7
+ #
8
+ #
9
+ #
10
+ class Appengine
11
+ #
12
+ attr_reader :adapter
13
+ #
14
+ #
15
+ #
16
+ def initialize(env=nil, options={})
17
+ @adapter = :appengine
18
+ end # initialize
19
+ #
20
+ #
21
+ #
22
+ def send(to, subject, body, charset='iso-2022-jp')
23
+ end # send
24
+
25
+ end # Appengine
26
+ end # Mailer
27
+ end # UzuUzu
@@ -0,0 +1,44 @@
1
+ # coding: utf-8
2
+ require 'net/smtp'
3
+ require 'tmail'
4
+
5
+ module UzuUzu
6
+ module Mailer
7
+ #
8
+ #
9
+ #
10
+ class Tmail
11
+ #
12
+ attr_reader :adapter
13
+ #
14
+ #
15
+ #
16
+ def initialize(env=nil, options={})
17
+ @adapter = :tmail
18
+ @from = env['address']
19
+ end # initialize
20
+
21
+ #
22
+ #
23
+ #
24
+ def send(to, subject, body, charset='iso-2022-jp')
25
+ mail = TMail::Mail.new
26
+
27
+ mail.to = to
28
+ mail.from = @from
29
+ mail.reply_to = @from
30
+ mail.subject = subject
31
+ mail.body = body
32
+ mail.date = Time.now
33
+ mail.mime_version = '1.0'
34
+ mail.set_content_type 'text', 'plain', {'charset' => charset}
35
+ mail.write_back
36
+
37
+ Net::SMTP.start(smtpserver) do |smtp|
38
+ smtp.sendmail(mail.encoded, mail.from, to)
39
+ end
40
+ end # send
41
+
42
+ end # Tmail
43
+ end # Mailer
44
+ end # UzuUzu
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ require 'appengine-apis'
3
+ require 'appengine-apis/memcache'
4
+
5
+ module UzuUzu
6
+ module Memcache
7
+ #
8
+ #
9
+ #
10
+ class Appengine
11
+ #
12
+ attr_reader :adapter
13
+ #
14
+ #
15
+ #
16
+ def initialize(env=nil)
17
+ @adapter = :appengine
18
+ @memcache = ::AppEngine::Memcache.new
19
+ end #new
20
+
21
+ #
22
+ #
23
+ #
24
+ def method_missing(action, *args)
25
+ @memcahce.send(action, args)
26
+ end
27
+ end # Appengine
28
+ end # Memcache
29
+ end # UzuUzu
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ require 'dalli'
3
+
4
+ module UzuUzu
5
+ module Memcache
6
+ #
7
+ #
8
+ #
9
+ class Dalli
10
+ #
11
+ attr_reader :adapter
12
+ #
13
+ #
14
+ #
15
+ def initialize(env=nil)
16
+ @adapter = :dalli
17
+ if env.blank? or env['address'].blank?
18
+ return
19
+ end
20
+ @memcache = Dalli::Client.new("#{env['address']}")
21
+ end #new
22
+
23
+ #
24
+ #
25
+ #
26
+ def method_missing(action, *args)
27
+ @memcahce.send(action, args)
28
+ end
29
+ end # Memcacheclient
30
+ end # Memcache
31
+ end # UzuUzu
@@ -0,0 +1,43 @@
1
+ # coding: utf-8
2
+ require 'leveldb'
3
+
4
+ module UzuUzu
5
+ module Memcache
6
+ class Leveldb
7
+ #
8
+ attr_reader :adapter
9
+
10
+ #
11
+ #
12
+ #
13
+ def initialize(env=nil)
14
+ @adapter = :leveldb
15
+ address = 'cache'
16
+ space = 'leveldb'
17
+ if env
18
+ address = env['address'] || address
19
+ space = env['space'] || UzuUzu.application.name || space
20
+ end
21
+ ::FileUtils.mkdir_p(::File.dirname(address))
22
+ @db = LevelDB::DB.new("#{address}/#{space}")
23
+ end
24
+
25
+ def get(key)
26
+ @db.get(key.to_s)
27
+ end
28
+ alias :[] :get
29
+
30
+ def put(key, value)
31
+ @db.put(key.to_s, value)
32
+ end
33
+ alias :[]= :put
34
+
35
+ #
36
+ #
37
+ #
38
+ def method_missing(action, *args)
39
+ @db.send(action, *args)
40
+ end # method_missing
41
+ end # Leveldb
42
+ end # Memcache
43
+ end # UzuUzu
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ require 'memcached'
3
+
4
+ module UzuUzu
5
+ module Memcache
6
+ #
7
+ #
8
+ #
9
+ class Memcached
10
+ def initialize(env=nil)
11
+ if env.blank? or env['address'].blank?
12
+ return
13
+ end
14
+
15
+ @memcache = Memcached.new("#{env['address']}")
16
+ end #new
17
+
18
+ def method_missing(action, *args)
19
+ @memcahce.send(action, args)
20
+ end
21
+ end # Memcacheclient
22
+ end # Memcache
23
+ end # UzuUzu
@@ -0,0 +1,40 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ module RackSession
5
+ class Appengine < ::Rack::Session::Abstract::ID
6
+ #
7
+ attr_reader :adapter
8
+
9
+ #
10
+ #
11
+ #
12
+ def initialize(env=nil)
13
+ @adapter = :appengine
14
+ super(nil, env)
15
+ end
16
+
17
+ def app(app)
18
+ @app = app
19
+ end
20
+
21
+ def generate_sid
22
+ loop do
23
+ sid = super
24
+ end
25
+ end
26
+
27
+ def get_session(env, sid)
28
+ #TODO
29
+ end
30
+
31
+ def set_session(env, session_id, new_session, options)
32
+ #TODO
33
+ end
34
+
35
+ def destroy_session(env, session_id, options)
36
+ #TODO
37
+ end
38
+ end # Leveldb
39
+ end # Kvs
40
+ end # UzuUzu
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ module RackSession
5
+ class Cookie
6
+ #
7
+ attr_reader :adapter
8
+
9
+ #
10
+ #
11
+ #
12
+ def initialize(env=nil)
13
+ @adapter = :cookie
14
+ @secret = 'uzuuzu'
15
+ if env
16
+ @secret = env['secret'] || @secret
17
+ end
18
+ end
19
+
20
+ def app(app)
21
+ Rack::Session::Cookie.new(app, :secret => @secret)
22
+ end
23
+ end # Leveldb
24
+ end # Kvs
25
+ end # UzuUzu
@@ -0,0 +1,22 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ module RackSession
5
+ class Datastore
6
+ #
7
+ attr_reader :adapter
8
+
9
+ #
10
+ #
11
+ #
12
+ def initialize(env=nil)
13
+ @adapter = :datastore
14
+ end
15
+
16
+ def app(app)
17
+ # TODO
18
+ app
19
+ end
20
+ end # Leveldb
21
+ end # Kvs
22
+ end # UzuUzu
@@ -0,0 +1,67 @@
1
+ # coding: utf-8
2
+ require 'rack/session/abstract/id'
3
+
4
+ module UzuUzu
5
+ module RackSession
6
+ class Memcache < ::Rack::Session::Abstract::ID
7
+ #
8
+ attr_reader :adapter
9
+
10
+ #
11
+ #
12
+ #
13
+ def initialize(env=nil)
14
+ @adapter = :memcache
15
+ super(nil, env)
16
+ @mutex = Mutex.new
17
+ @pool = ::UzuUzu::Wrapper::Wrapper.new('memcache', env['env']).wrapper
18
+ end
19
+
20
+ def app(app)
21
+ @app = app
22
+ end
23
+
24
+ def generate_sid
25
+ loop do
26
+ sid = super
27
+ break sid unless @pool.get(sid)
28
+ end
29
+ end
30
+
31
+ def get_session(env, sid)
32
+ with_lock(env, [nil, {}]) do
33
+ unless sid and session = @pool.get(sid)
34
+ sid, session = generate_sid, {}
35
+ unless /^STORED/ =~ @pool.add(sid, session)
36
+ raise "Session collision on '#{sid.inspect}'"
37
+ end
38
+ end
39
+ [sid, session]
40
+ end
41
+ end
42
+
43
+ def set_session(env, session_id, new_session, options)
44
+ with_lock(env, false) do
45
+ @pool.set session_id, new_session
46
+ session_id
47
+ end
48
+ end
49
+
50
+ def destroy_session(env, session_id, options)
51
+ with_lock(env) do
52
+ @pool.delete(session_id)
53
+ generate_sid unless options[:drop]
54
+ end
55
+ end
56
+
57
+ def with_lock(env, default=nil)
58
+ @mutex.lock if env['rack.multithread']
59
+ yield
60
+ rescue
61
+ default
62
+ ensure
63
+ @mutex.unlock if @mutex.locked?
64
+ end
65
+ end # Leveldb
66
+ end # Kvs
67
+ end # UzuUzu
File without changes
@@ -5,7 +5,6 @@ module UzuUzu
5
5
  #
6
6
  #
7
7
  class Response < Rack::Response
8
-
9
8
  #
10
9
  #
11
10
  #
@@ -4,11 +4,11 @@ module UzuUzu
4
4
  #
5
5
  #
6
6
  #
7
- module TiltWrapper
7
+ module Tilt
8
8
  #
9
9
  #
10
10
  #
11
- def self.render_engine(instance, view_string, engine=::UzuUzu.engine, options={}, locals={}, &block)
11
+ def self.render_engine(instance, view_string, engine='erb', options={}, locals={}, &block)
12
12
  template = ::Tilt[engine.to_s].new { |t| view_string.force_encoding('UTF-8') }
13
13
  contents = template.render(instance, locals, &block)
14
14
  unless options.blank?
@@ -27,5 +27,5 @@ module UzuUzu
27
27
  end
28
28
  contents
29
29
  end # self.render_engine
30
- end # TiltWrapper
30
+ end # Tilt
31
31
  end # UzuUzu