gplus 2.0.1 → 2.1.0

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.
@@ -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,