gplus 2.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## v2.1.0: 2012/01/28
4
+
5
+ * Add support for listPeopleByActivity API call
6
+ * Use the `redirect_uri` that Gplus was initialized with as the default in `#get_token`. You now only have to specify an explicit `redirect_uri` when calling `#get_token` if you overrode your default `redirect_uri` when you called `#authorize_url`.
7
+
3
8
  ## v2.0.1: 2012/01/11
4
9
 
5
10
  * Fix file permissions so that gplus's files are world readable
data/README.md CHANGED
@@ -142,7 +142,15 @@ If you want more than 20 results, take the `:nextPageToken` returned from your f
142
142
  people = @gplus.search_people('Larry Page', :maxResults => 20)
143
143
  more_people = @gplus.search_people('Larry Page', :maxResults => 20, :pageToken => people[:nextPageToken])
144
144
 
145
- See the Google+ API documentation for [People](http://developers.google.com/+/api/latest/people), [People: get](http://developers.google.com/+/api/latest/people/get) and [People: search](http://developers.google.com/+/api/latest/people/search).
145
+ List people who +1'd or reshared an activity with `.list_people_by_activity`:
146
+
147
+ # Get people who +1'd an activity
148
+ people = @gplus.list_people_by_activity(activity_id, 'plusoners')
149
+
150
+ # Get people who reshared an activity
151
+ people = @gplus.list_people_by_activity(activity_id, 'resharers')
152
+
153
+ See the Google+ API documentation for [People](http://developers.google.com/+/api/latest/people), [People: get](http://developers.google.com/+/api/latest/people/get), [People: search](http://developers.google.com/+/api/latest/people/search), and [People: listByActivity](https://developers.google.com/+/api/latest/people/listByActivity).
146
154
 
147
155
  ## [Activities](http://developers.google.com/+/api/latest/activities)
148
156
 
data/Rakefile CHANGED
@@ -1,6 +1,19 @@
1
1
  #!/usr/bin/env rake
2
+
2
3
  require "bundler/gem_tasks"
3
4
 
5
+ # Define a task to make sure the gem's files are world readable.
6
+ task :set_permissions do
7
+ system("find . -type f -exec chmod 644 {} \\;")
8
+ system("find . -type d -exec chmod 755 {} \\;")
9
+ end
10
+
11
+ # Add :set_permissions as a dependency for the :build, :install, and :release
12
+ # tasks that bundler provides, so that the correct permissions are always set.
13
+ task :build => :set_permissions
14
+ task :install => :set_permissions
15
+ task :release => :set_permissions
16
+
4
17
  require 'rspec/core/rake_task'
5
18
  RSpec::Core::RakeTask.new('spec')
6
19
  task :default => :spec
@@ -65,6 +65,8 @@ module Gplus
65
65
  # @param [Hash] opts Additional access token options (passed through to OAuth2::Client#get_token)
66
66
  # @return [OAuth2::AccessToken] An OAuth access token. Store access_token[:token], access_token[:refresh_token] and access_token[:expires_at] to get persistent access to the user's data until access_token[:expires_at].
67
67
  def get_token(auth_code, params = {}, opts = {})
68
+ defaults = { :redirect_uri => @redirect_uri }
69
+ params = defaults.merge(params)
68
70
  @access_token = @oauth_client.auth_code.get_token(auth_code, params, opts)
69
71
  end
70
72
 
@@ -23,5 +23,18 @@ module Gplus
23
23
  def search_people(query, options = {})
24
24
  get("people", options.merge(:query => query))
25
25
  end
26
+
27
+ # List all of the people in the specified collection for a particular activity.
28
+ # @see https://developers.google.com/+/api/latest/people/listByActivity The Google+ 'People: listByActivity' documentation.
29
+ # @see https://developers.google.com/+/api/#pagination The Google+ pagination documentation.
30
+ #
31
+ # @param [String] activity_id The ID of the activity to get the list of people for.
32
+ # @param [String] collection The collection of people to list. Acceptable values are 'plusoners' and 'resharers'.
33
+ # @option options [Integer] maxResults (20) The number of people, between 1 and 100, to return.
34
+ # @option options [String] pageToken The page of people to fetch. Pass the value of :nextPageToken from the previous result set to get the next page of results.
35
+ # @return [Hash] A nested hash representation of a {https://developers.google.com/+/api/latest/people/listByActivity#response list of people}.
36
+ def list_people_by_activity(activity_id, collection, options = {})
37
+ get("activities/#{activity_id}/people/#{collection}", options)
38
+ end
26
39
  end
27
40
  end
@@ -1,5 +1,5 @@
1
1
  module Gplus
2
2
  # The version of Gplus that you're using. I use semantic versioning to version Gplus.
3
3
  # @see http://semver.org/
4
- VERSION = "2.0.1"
4
+ VERSION = "2.1.0"
5
5
  end
@@ -39,4 +39,35 @@ describe Gplus::Person do
39
39
  @client.search_people(@person_json['displayName'], :pageToken => @page).should == @people_json
40
40
  end
41
41
  end
42
+
43
+ describe '.list_people_by_activity' do
44
+ before do
45
+ @activity, @activity_json = fixture('activity.json')
46
+ @people, @people_json = fixture('people.json')
47
+ end
48
+
49
+ it "should return a list of people who reshared an activity" do
50
+ stub_api_request(:get, "activities/#{@activity_json['id']}/people/resharers").to_return(:body => @people)
51
+ @client.list_people_by_activity(@activity_json['id'], 'resharers').should == @people_json
52
+ end
53
+
54
+ it "should return a list of people who plusoned an activity" do
55
+ stub_api_request(:get, "activities/#{@activity_json['id']}/people/plusoners").to_return(:body => @people)
56
+ @client.list_people_by_activity(@activity_json['id'], 'plusoners').should == @people_json
57
+ end
58
+
59
+ it "should accept a :maxResults argument" do
60
+ @results = 2
61
+
62
+ stub_api_request(:get, "activities/#{@activity_json['id']}/people/plusoners", :maxResults => @results.to_s).to_return(:body => @people)
63
+ @client.list_people_by_activity(@activity_json['id'], 'plusoners', :maxResults => @results).should == @people_json
64
+ end
65
+
66
+ it "should accept a :pageToken argument" do
67
+ @page = '1234567'
68
+
69
+ stub_api_request(:get, "activities/#{@activity_json['id']}/people/plusoners", :pageToken => @page).to_return(:body => @people)
70
+ @client.list_people_by_activity(@activity_json['id'], 'plusoners', :pageToken => @page).should == @people_json
71
+ end
72
+ end
42
73
  end
@@ -12,6 +12,6 @@ def fixture(file)
12
12
  end
13
13
 
14
14
  def stub_api_request(method, path, query = {})
15
- query[:key] = @api_key unless @api_key.blank?
15
+ query[:key] = @api_key unless @api_key == nil or @api_key == ''
16
16
  stub_request(method, "#{Gplus::Client::DEFAULT_ENDPOINT}/#{Gplus::Client::DEFAULT_API_VERSION}/#{path}").with(:query => query)
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gplus
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-11 00:00:00.000000000 Z
12
+ date: 2012-01-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
16
- requirement: &12014640 !ruby/object:Gem::Requirement
16
+ requirement: &22418700 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *12014640
24
+ version_requirements: *22418700
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: oauth2
27
- requirement: &12013040 !ruby/object:Gem::Requirement
27
+ requirement: &22434380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.5'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *12013040
35
+ version_requirements: *22434380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &12012240 !ruby/object:Gem::Requirement
38
+ requirement: &22433800 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *12012240
46
+ version_requirements: *22433800
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: webmock
49
- requirement: &12011000 !ruby/object:Gem::Requirement
49
+ requirement: &22433340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *12011000
57
+ version_requirements: *22433340
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &12008680 !ruby/object:Gem::Requirement
60
+ requirement: &22432900 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *12008680
68
+ version_requirements: *22432900
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yard
71
- requirement: &12007040 !ruby/object:Gem::Requirement
71
+ requirement: &22432260 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *12007040
79
+ version_requirements: *22432260
80
80
  description: A complete implementation of the Google plus API for Ruby
81
81
  email:
82
82
  - nicholas@2suggestions.com.au
@@ -128,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
128
  version: 1.3.6
129
129
  requirements: []
130
130
  rubyforge_project:
131
- rubygems_version: 1.8.13
131
+ rubygems_version: 1.8.15
132
132
  signing_key:
133
133
  specification_version: 3
134
134
  summary: Google+ API implementation with support for authorized requests, People,