uzuuzu-core 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -17,3 +17,4 @@ gem 'extlib'
17
17
  gem 'ruby-openid'
18
18
  gem 'oauth'
19
19
  gem 'tilt'
20
+ gem 'erubis'
data/Gemfile.lock CHANGED
@@ -2,6 +2,7 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  diff-lcs (1.1.3)
5
+ erubis (2.7.0)
5
6
  extlib (0.9.15)
6
7
  git (1.2.5)
7
8
  jeweler (1.6.4)
@@ -28,6 +29,7 @@ PLATFORMS
28
29
 
29
30
  DEPENDENCIES
30
31
  bundler
32
+ erubis
31
33
  extlib
32
34
  jeweler
33
35
  oauth
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -139,6 +139,7 @@ module UzuUzu
139
139
  query = map[:query]
140
140
  route = map[:route]
141
141
  controller = controller_class.new
142
+ controller.extend(::UzuUzu::Controller)
142
143
  helper = Helper::Helper.new
143
144
  helpers.each do |h|
144
145
  helper.extend(h)
@@ -167,31 +168,29 @@ module UzuUzu
167
168
  end # call
168
169
 
169
170
  def require_noerror(path)
170
- begin
171
- require path
172
- rescue LoadError => e
173
- end
171
+ require path
172
+ rescue LoadError => e
174
173
  end
175
174
  #
176
175
  #
177
176
  #
178
177
  def auto_require(env)
179
- require_base = "#{@name.to_s}/"
180
- require_base = '' if @name == :uzuuzu
178
+ require_base = "/#{@name.to_s}"
179
+ require_base = '' if @name == :uzuuzu || @name == '' || @name.blank?
181
180
  array = []
182
181
  if env['PATH_INFO'] == '/'
183
- require_noerror "#{controller_root}/#{require_base}index"
184
- require_noerror "#{helper_root}/#{require_base}index"
182
+ require_noerror "#{controller_root}#{require_base}/index"
183
+ require_noerror "#{helper_root}#{require_base}/index"
185
184
  end
186
185
  env['PATH_INFO'].split('/').each do |path|
187
186
  array << path
188
187
  begin
189
188
  if array.size > 1
190
- require_noerror "#{controller_root}/#{require_base}#{array.join('/')}/index"
191
- require_noerror "#{helper_root}/#{require_base}#{array.join('/')}/index"
189
+ require_noerror "#{controller_root}#{require_base}#{array.join('/')}/index"
190
+ require_noerror "#{helper_root}#{require_base}#{array.join('/')}/index"
192
191
  end
193
- require_noerror "#{controller_root}/#{require_base}#{array.join('/')}"
194
- require_noerror "#{helper_root}/#{require_base}#{array.join('/')}"
192
+ require_noerror "#{controller_root}#{require_base}#{array.join('/')}"
193
+ require_noerror "#{helper_root}#{require_base}#{array.join('/')}"
195
194
  rescue
196
195
  end
197
196
  end
@@ -207,13 +206,21 @@ module UzuUzu
207
206
  :route => route,
208
207
  :query => query
209
208
  }
209
+ rescue NameError => e
210
210
  end
211
211
 
212
212
  #
213
213
  #
214
214
  #
215
215
  def find_helper(name, route)
216
-
216
+ routes = route.split('/').map{|a| a.camel_case}
217
+ helper_str = "#{helper_root.camel_case}#{routes.join('::')}"
218
+ if routes.blank? || name != routes[-1]
219
+ helper_str += "::#{name.camel_case}"
220
+ end
221
+ helper = eval(helper_str)
222
+ helper
223
+ rescue NameError => e
217
224
  end # find_helper
218
225
 
219
226
  #
@@ -263,7 +270,7 @@ module UzuUzu
263
270
  classies << map
264
271
  end
265
272
  _c = map[:controller] if map
266
- if _c.kind_of?(::Class) || _c.kind_of?(::Module)
273
+ unless _c.kind_of?(::Class) || _c.kind_of?(::Module)
267
274
  break
268
275
  end
269
276
  end
@@ -299,10 +306,6 @@ module UzuUzu
299
306
  action = 'index'
300
307
  end
301
308
 
302
- #p controller
303
- #p controller.methods.sort
304
- #p action
305
- #p query[0]
306
309
  unless action.nil?
307
310
  arity = controller.method(action).arity
308
311
  owner = controller.method(action).owner
@@ -3,7 +3,10 @@
3
3
  module UzuUzu
4
4
  module Controller
5
5
  class Index
6
- include ::UzuUzu::Controller
6
+
7
+ def index
8
+
9
+ end
7
10
 
8
11
  def error(code)
9
12
  response.respond(helper.render_file(__DIR__("view/error/#{code}.rhtml")))
@@ -4,8 +4,10 @@ require 'oauth'
4
4
  module UzuUzu
5
5
  module Controller
6
6
  module Login
7
+ #
8
+ #
9
+ #
7
10
  class Twitter
8
- include ::UzuUzu::Controller
9
11
 
10
12
  def index
11
13
  @config = Environments.current.config['twitter']
@@ -13,8 +15,8 @@ module UzuUzu
13
15
  if session[:login_user_id]
14
16
  redirect request.referrer || '/'
15
17
  end
16
- if session[:twitter_request_token].blank? || session[:twitter_request_token_secret].blank?
17
- request_token(name)
18
+ if session[:twitter_request_token].blank?
19
+ request_token
18
20
  end
19
21
  access_token
20
22
  response.redirect session[:referer] || '/'
@@ -23,27 +25,35 @@ module UzuUzu
23
25
  private
24
26
  def request_token
25
27
  session[:referer] = request.referrer || '/'
26
- twitter_consumer = OAuth::Consumer.new(@config['consumer_key'], @config['consumer_secret'], :site => "http://twitter.com")
27
- unless twitter_consumer
28
- response.server_error
29
- end
30
-
31
- request_token = twitter_consumer.get_request_token
28
+ twitter_consumer = OAuth::Consumer.new(
29
+ @config['consumer_key'],
30
+ @config['consumer_secret'],
31
+ :site => "http://twitter.com",
32
+ :request_token_url => 'https://api.twitter.com/oauth/request_token',
33
+ :autorize_url => 'https://api.twitter.com/oauth/authorize',
34
+ :access_token_url => 'https://api.twitter.com/oauth/access_token',
35
+ :oauth_callback => "#{helper.root_uri}#{helper.r}"
36
+ )
37
+ request_token = twitter_consumer.get_request_token()
32
38
  session[:twitter_request_token] = request_token.token
33
- session[:twitter_request_token_secret] = request_token.secret
34
39
 
35
- response.redirect request_token.authorize_url
36
- end
40
+ response.redirect request_token.authorize_url(:oauth_callback => "#{helper.root_uri}#{helper.r}")
41
+ rescue
42
+ response.server_error
43
+ end # request_token
37
44
 
38
45
  def access_token
39
- twitter_consumer = OAuth::Consumer.new(@config['consumer_key'], @config['consumer_secret'], :site => "http://twitter.com")
40
- unless twitter_consumer
41
- response.server_error
42
- end
46
+ twitter_consumer = OAuth::Consumer.new(
47
+ @config['consumer_key'],
48
+ @config['consumer_secret'],
49
+ :site => "http://twitter.com",
50
+ :request_token_url => 'https://api.twitter.com/oauth/request_token',
51
+ :autorize_url => 'https://api.twitter.com/oauth/authorize',
52
+ :access_token_url => 'https://api.twitter.com/oauth/access_token',
53
+ )
43
54
  request_token = OAuth::RequestToken.new(
44
- twitter,
45
- session[:twitter_request_token],
46
- session[:twitter_request_token_secret]
55
+ twitter_consumer,
56
+ session[:twitter_request_token]
47
57
  )
48
58
  access_token = request_token.get_access_token(
49
59
  {},
@@ -53,14 +63,16 @@ module UzuUzu
53
63
  session[:twitter_access_token] = access_token.token
54
64
  session[:twitter_access_token_secret] = access_token.secret
55
65
  session.delete(:twitter_request_token)
56
- session.delete(:twitter_request_token_secret)
57
66
 
58
67
  session[:twitter_user_id] = access_token.params[:user_id]
59
68
  session[:login_user_id] = access_token.params[:screen_name]
60
69
  session[:login_name] = access_token.params[:screen_name]
61
70
  session[:login_domain] = 'twitter'
62
- end
63
- end # Oauth
71
+ rescue => e
72
+ response.server_error
73
+ end # access_token
74
+
75
+ end # Twitter
64
76
  end # Login
65
77
  end # Controller
66
- end # UzuUzuCms
78
+ end # UzuUzu
@@ -76,7 +76,7 @@ module UzuUzu
76
76
 
77
77
  def config
78
78
  return {} if @config.nil?
79
- @config['config'] || {}
79
+ @config || {}
80
80
  end
81
81
 
82
82
  def logger
data/uzuuzu-core.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{uzuuzu-core}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Takuya Kondo"]
12
- s.date = %q{2011-12-18}
12
+ s.date = %q{2011-12-23}
13
13
  s.description = %q{uzuuzu core library}
14
14
  s.email = %q{takuya.v3v@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -29,7 +29,6 @@ Gem::Specification.new do |s|
29
29
  "lib/uzuuzu-core/application.rb",
30
30
  "lib/uzuuzu-core/controller.rb",
31
31
  "lib/uzuuzu-core/controller/index.rb",
32
- "lib/uzuuzu-core/controller/login/openid.rb",
33
32
  "lib/uzuuzu-core/controller/login/twitter.rb",
34
33
  "lib/uzuuzu-core/controller/view/error/404.rhtml",
35
34
  "lib/uzuuzu-core/controller/view/error/500.rhtml",
@@ -83,6 +82,7 @@ Gem::Specification.new do |s|
83
82
  s.add_runtime_dependency(%q<ruby-openid>, [">= 0"])
84
83
  s.add_runtime_dependency(%q<oauth>, [">= 0"])
85
84
  s.add_runtime_dependency(%q<tilt>, [">= 0"])
85
+ s.add_runtime_dependency(%q<erubis>, [">= 0"])
86
86
  s.add_development_dependency(%q<rspec>, [">= 0"])
87
87
  s.add_development_dependency(%q<bundler>, [">= 0"])
88
88
  s.add_development_dependency(%q<jeweler>, [">= 0"])
@@ -93,6 +93,7 @@ Gem::Specification.new do |s|
93
93
  s.add_dependency(%q<ruby-openid>, [">= 0"])
94
94
  s.add_dependency(%q<oauth>, [">= 0"])
95
95
  s.add_dependency(%q<tilt>, [">= 0"])
96
+ s.add_dependency(%q<erubis>, [">= 0"])
96
97
  s.add_dependency(%q<rspec>, [">= 0"])
97
98
  s.add_dependency(%q<bundler>, [">= 0"])
98
99
  s.add_dependency(%q<jeweler>, [">= 0"])
@@ -104,6 +105,7 @@ Gem::Specification.new do |s|
104
105
  s.add_dependency(%q<ruby-openid>, [">= 0"])
105
106
  s.add_dependency(%q<oauth>, [">= 0"])
106
107
  s.add_dependency(%q<tilt>, [">= 0"])
108
+ s.add_dependency(%q<erubis>, [">= 0"])
107
109
  s.add_dependency(%q<rspec>, [">= 0"])
108
110
  s.add_dependency(%q<bundler>, [">= 0"])
109
111
  s.add_dependency(%q<jeweler>, [">= 0"])
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: uzuuzu-core
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.1.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Takuya Kondo
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-12-18 00:00:00 +09:00
13
+ date: 2011-12-23 00:00:00 +09:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -69,18 +69,18 @@ dependencies:
69
69
  prerelease: false
70
70
  version_requirements: *id005
71
71
  - !ruby/object:Gem::Dependency
72
- name: rspec
72
+ name: erubis
73
73
  requirement: &id006 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ">="
77
77
  - !ruby/object:Gem::Version
78
78
  version: "0"
79
- type: :development
79
+ type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: *id006
82
82
  - !ruby/object:Gem::Dependency
83
- name: bundler
83
+ name: rspec
84
84
  requirement: &id007 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
@@ -91,7 +91,7 @@ dependencies:
91
91
  prerelease: false
92
92
  version_requirements: *id007
93
93
  - !ruby/object:Gem::Dependency
94
- name: jeweler
94
+ name: bundler
95
95
  requirement: &id008 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
@@ -102,7 +102,7 @@ dependencies:
102
102
  prerelease: false
103
103
  version_requirements: *id008
104
104
  - !ruby/object:Gem::Dependency
105
- name: rcov
105
+ name: jeweler
106
106
  requirement: &id009 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
@@ -112,6 +112,17 @@ dependencies:
112
112
  type: :development
113
113
  prerelease: false
114
114
  version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
116
+ name: rcov
117
+ requirement: &id010 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: "0"
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: *id010
115
126
  description: uzuuzu core library
116
127
  email: takuya.v3v@gmail.com
117
128
  executables: []
@@ -134,7 +145,6 @@ files:
134
145
  - lib/uzuuzu-core/application.rb
135
146
  - lib/uzuuzu-core/controller.rb
136
147
  - lib/uzuuzu-core/controller/index.rb
137
- - lib/uzuuzu-core/controller/login/openid.rb
138
148
  - lib/uzuuzu-core/controller/login/twitter.rb
139
149
  - lib/uzuuzu-core/controller/view/error/404.rhtml
140
150
  - lib/uzuuzu-core/controller/view/error/500.rhtml
@@ -186,7 +196,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
186
196
  requirements:
187
197
  - - ">="
188
198
  - !ruby/object:Gem::Version
189
- hash: 2970858063230439040
199
+ hash: 2659215679876593747
190
200
  segments:
191
201
  - 0
192
202
  version: "0"
@@ -1,87 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'openid'
4
- require 'openid/store/filesystem'
5
- require 'openid/extensions/pape'
6
- require 'openid/extensions/sreg'
7
- require 'openid/store/memcache'
8
-
9
- module UzuUzu
10
- module Controller
11
- #
12
- #
13
- #
14
- class Openid
15
- include ::UzuUzu::Controller
16
-
17
- # need params['domain']
18
- def index
19
- if session[:openid_domain].blank? or session[:openid_entry].blank?
20
- openid_begin
21
- elsif session[:openid_domain] and session[:openid_entry]
22
- openid_complete
23
- else
24
- response.redirect request.referrer || "/"
25
- end
26
- end
27
-
28
- def openid_begin
29
- domain = request.params['domain']
30
- response.redirect request.referrer || "/" if domain.to_s.empty?
31
- session[:openid_domain] = domain
32
- session[:openid_entry] = request.referrer || "/"
33
-
34
- openid_request = openid_consumer.begin(domain)
35
-
36
- papereq = ::OpenID::PAPE::Request.new
37
- papereq.add_policy_uri(::OpenID::PAPE::AUTH_PHISHING_RESISTANT)
38
- papereq.max_auth_age = 2*60*60
39
- openid_request.add_extension(papereq)
40
-
41
- sregreq = ::OpenID::SReg::Request.new
42
- sregreq.request_fields(['fullname', 'nickname', 'dob', 'email',
43
- 'gender', 'postcode', 'country', 'language',
44
- 'timezone'])
45
- openid_request.add_extension(sregreq)
46
- openid_request.return_to_args['did_pape'] = 'y'
47
-
48
- root = helper.root_uri
49
- return_to = "#{helper.root_uri}#{helper.r(:openid_complete)}"
50
- immediate = false
51
-
52
- if openid_request.send_redirect?(root, return_to, immediate)
53
- redirect_url = openid_request.redirect_url(root, return_to, immediate)
54
- response.redirect redirect_url
55
- else
56
- # what the hell is @form_text ?
57
- end
58
- rescue ::OpenID::OpenIDError => ex
59
- response.server_error
60
- end
61
-
62
- def openid_complete
63
- openid_response = openid_consumer.complete(request.params, request.url)
64
-
65
- case openid_response.status
66
- when ::OpenID::Consumer::FAILURE
67
- when ::OpenID::Consumer::SUCCESS
68
- # Backwards compatibility
69
- session[:openid_identity] = openid_response.identity_url
70
- session[:openid_sreg] = ::OpenID::SReg::Response.from_success_response(openid_response)
71
- end
72
- openid_entry = session[:openid_entry]
73
- session.delete(:openid_entry)
74
- response.redirect openid_entry
75
- end
76
-
77
-
78
- private
79
-
80
- # use memcache
81
- def openid_consumer
82
- _memcache = ::OpenID::Store::Memcache.new(memcache)
83
- ::OpenID::Consumer.new(session, _memcache)
84
- end
85
- end # Openid
86
- end # Controller
87
- end # UzuUzu