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 +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
|