uzuuzu-core 0.1.0 → 0.1.1
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.
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/VERSION +1 -1
- data/lib/uzuuzu-core/application.rb +21 -18
- data/lib/uzuuzu-core/controller/index.rb +4 -1
- data/lib/uzuuzu-core/controller/login/twitter.rb +35 -23
- data/lib/uzuuzu-core/environments.rb +1 -1
- data/uzuuzu-core.gemspec +5 -3
- metadata +19 -9
- data/lib/uzuuzu-core/controller/login/openid.rb +0 -87
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
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
|
-
|
171
|
-
|
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 = "
|
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}
|
184
|
-
require_noerror "#{helper_root}
|
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}
|
191
|
-
require_noerror "#{helper_root}
|
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}
|
194
|
-
require_noerror "#{helper_root}
|
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
|
-
|
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
|
@@ -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?
|
17
|
-
request_token
|
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(
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
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(
|
40
|
-
|
41
|
-
|
42
|
-
|
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
|
-
|
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
|
-
|
63
|
-
|
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 #
|
78
|
+
end # UzuUzu
|
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.
|
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-
|
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.
|
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-
|
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:
|
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: :
|
79
|
+
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: *id006
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
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:
|
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:
|
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:
|
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
|