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 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
- :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
- `popup_code` can also be called with `:unobstrusive=>true`, to still get a nice popup include `RPXNow.popup_source('mywebsite',rpx_token_sessions_url, [options])` somewhere else.
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
- Environment
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.5
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.5"
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-11}
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 :read_user_data_from_response do
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.5
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-11 00:00:00 +02:00
12
+ date: 2009-10-12 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency