rpx_now 0.6.5 → 0.6.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +14 -8
- data/VERSION +1 -1
- data/lib/rpx_now.rb +5 -2
- data/rpx_now.gemspec +2 -2
- data/spec/rpx_now_spec.rb +10 -3
- metadata +2 -2
data/README.markdown
CHANGED
@@ -35,16 +35,18 @@ View
|
|
35
35
|
OR
|
36
36
|
<%=RPXNow.popup_code('Login here...', 'mywebsite', rpx_token_sessions_url, options)%>
|
37
37
|
|
38
|
-
Options
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
###Options
|
39
|
+
`:language=>'en'` rpx tries to detect the users language, but you may overwrite it [possible languages](https://rpxnow.com/docs#sign-in_localization)
|
40
|
+
`:default_provider=>'google'` [possible default providers](https://rpxnow.com/docs#sign-in_default_provider)
|
41
|
+
`:flags=>'show_provider_list'` [possible flags](https://rpxnow.com/docs#sign-in_interface)
|
42
|
+
|
43
|
+
###Unobtrusive / JS-last
|
44
|
+
`popup_code` can also be called with `:unobtrusive=>true` ( --> just link without javascript include).
|
45
|
+
To still get the normal popup add `RPXNow.popup_source('mywebsite',rpx_token_sessions_url, [options])`.
|
44
46
|
Options like :language / :flags should be given for both.
|
45
47
|
|
46
|
-
|
47
|
-
|
48
|
+
environment.rb
|
49
|
+
--------------
|
48
50
|
Rails::Initializer.run do |config|
|
49
51
|
config.gem "rpx_now"
|
50
52
|
...
|
@@ -67,6 +69,10 @@ Controller
|
|
67
69
|
redirect_to '/'
|
68
70
|
end
|
69
71
|
|
72
|
+
# getting additional fields (these fields are rarely filled)
|
73
|
+
# all possibilities: https://rpxnow.com/docs#profile_data
|
74
|
+
data = RPXNow.user_data(params[:token], :additional => [:gender, :birthday, :photo, :providerName, ...])
|
75
|
+
|
70
76
|
# raw request processing
|
71
77
|
RPXNow.user_data(params[:token]){|raw| {:email=>raw['profile']['verifiedEmail']} }
|
72
78
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.6
|
data/lib/rpx_now.rb
CHANGED
@@ -23,7 +23,7 @@ module RPXNow
|
|
23
23
|
def user_data(token, options={})
|
24
24
|
begin
|
25
25
|
data = Api.call("auth_info", options.merge(:token => token))
|
26
|
-
if block_given? then yield(data) else parse_user_data(data) end
|
26
|
+
if block_given? then yield(data) else parse_user_data(data, options) end
|
27
27
|
rescue ServerError
|
28
28
|
return nil if $!.to_s=~/Data not found/
|
29
29
|
raise
|
@@ -118,7 +118,7 @@ module RPXNow
|
|
118
118
|
}.map{|k,v| "#{k}=#{v}" if v}.compact.join('&')
|
119
119
|
end
|
120
120
|
|
121
|
-
def self.parse_user_data(response)
|
121
|
+
def self.parse_user_data(response, options)
|
122
122
|
user_data = response['profile']
|
123
123
|
data = {}
|
124
124
|
data[:identifier] = user_data['identifier']
|
@@ -126,6 +126,9 @@ module RPXNow
|
|
126
126
|
data[:username] = user_data['preferredUsername'] || data[:email].to_s.sub(/@.*/,'')
|
127
127
|
data[:name] = user_data['displayName'] || data[:username]
|
128
128
|
data[:id] = user_data['primaryKey'] unless user_data['primaryKey'].to_s.empty?
|
129
|
+
(options[:additional] || []).each do |key|
|
130
|
+
data[key] = user_data[key.to_s]
|
131
|
+
end
|
129
132
|
data
|
130
133
|
end
|
131
134
|
|
data/rpx_now.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rpx_now}
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Grosser"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-12}
|
13
13
|
s.email = %q{grosser.michael@gmail.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"README.markdown"
|
data/spec/rpx_now_spec.rb
CHANGED
@@ -224,6 +224,13 @@ describe RPXNow do
|
|
224
224
|
RPXNow::Api.should_receive(:request).and_return response
|
225
225
|
RPXNow.user_data('')[:id].should == 'dbalatero'
|
226
226
|
end
|
227
|
+
|
228
|
+
it "can fetch additional fields" do
|
229
|
+
@response_body['profile']['xxxy'] = "test"
|
230
|
+
response = fake_response(@response_body)
|
231
|
+
RPXNow::Api.should_receive(:request).and_return response
|
232
|
+
RPXNow.user_data('', :additional => [:xxxy])[:xxxy].should == 'test'
|
233
|
+
end
|
227
234
|
|
228
235
|
it "hands JSON response to supplied block" do
|
229
236
|
RPXNow::Api.should_receive(:request).and_return @response
|
@@ -273,13 +280,13 @@ describe RPXNow do
|
|
273
280
|
end
|
274
281
|
end
|
275
282
|
|
276
|
-
describe :
|
283
|
+
describe :parse_user_data do
|
277
284
|
it "reads secondary names" do
|
278
|
-
RPXNow.send(:parse_user_data,{'profile'=>{'preferredUsername'=>'1'}})[:name].should == '1'
|
285
|
+
RPXNow.send(:parse_user_data,{'profile'=>{'preferredUsername'=>'1'}}, {})[:name].should == '1'
|
279
286
|
end
|
280
287
|
|
281
288
|
it "parses email when no name is found" do
|
282
|
-
RPXNow.send(:parse_user_data,{'profile'=>{'email'=>'1@xxx.com'}})[:name].should == '1'
|
289
|
+
RPXNow.send(:parse_user_data,{'profile'=>{'email'=>'1@xxx.com'}}, {})[:name].should == '1'
|
283
290
|
end
|
284
291
|
end
|
285
292
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rpx_now
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-12 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|