rpx_now 0.6.5 → 0.6.6

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