GooglePlus 0.0.2

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.
Files changed (50) hide show
  1. data/.document +5 -0
  2. data/Gemfile +23 -0
  3. data/Gemfile.lock +56 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +19 -0
  6. data/Rakefile +46 -0
  7. data/VERSION +1 -0
  8. data/lib/GooglePlus.rb +26 -0
  9. data/lib/google_plus/api.rb +27 -0
  10. data/lib/google_plus/authenticatable.rb +25 -0
  11. data/lib/google_plus/base.rb +39 -0
  12. data/lib/google_plus/client.rb +29 -0
  13. data/lib/google_plus/client/activity.rb +10 -0
  14. data/lib/google_plus/client/comments.rb +10 -0
  15. data/lib/google_plus/client/users.rb +22 -0
  16. data/lib/google_plus/config.rb +103 -0
  17. data/lib/google_plus/configuration.rb +21 -0
  18. data/lib/google_plus/connection.rb +44 -0
  19. data/lib/google_plus/core_ext/hash.rb +66 -0
  20. data/lib/google_plus/creatable.rb +15 -0
  21. data/lib/google_plus/cursor.rb +45 -0
  22. data/lib/google_plus/direct_message.rb +28 -0
  23. data/lib/google_plus/error.rb +38 -0
  24. data/lib/google_plus/error/bad_gateway.rb +0 -0
  25. data/lib/google_plus/error/bad_request.rb +0 -0
  26. data/lib/google_plus/error/client_error.rb +8 -0
  27. data/lib/google_plus/error/enhance_your_calm.rb +0 -0
  28. data/lib/google_plus/error/forbidden.rb +8 -0
  29. data/lib/google_plus/error/internal_server_error.rb +0 -0
  30. data/lib/google_plus/error/not_acceptable.rb +0 -0
  31. data/lib/google_plus/error/not_found.rb +0 -0
  32. data/lib/google_plus/error/service_unavailable.rb +0 -0
  33. data/lib/google_plus/error/unauthorized.rb +8 -0
  34. data/lib/google_plus/geo_factory.rb +23 -0
  35. data/lib/google_plus/metadata.rb +8 -0
  36. data/lib/google_plus/request.rb +37 -0
  37. data/lib/google_plus/request/gateway.rb +21 -0
  38. data/lib/google_plus/request/multipart_with_file.rb +38 -0
  39. data/lib/google_plus/request/oauth.rb +27 -0
  40. data/lib/google_plus/request/phoenix.rb +23 -0
  41. data/lib/google_plus/response/parse_json.rb +24 -0
  42. data/lib/google_plus/response/raise_client_error.rb +54 -0
  43. data/lib/google_plus/response/raise_server_error.rb +30 -0
  44. data/lib/google_plus/size.rb +17 -0
  45. data/lib/google_plus/status.rb +87 -0
  46. data/lib/google_plus/user.rb +65 -0
  47. data/lib/google_plus/version.rb +31 -0
  48. data/test/helper.rb +19 -0
  49. data/test/test_GooglePlus.rb +14 -0
  50. metadata +255 -0
@@ -0,0 +1,27 @@
1
+ require 'faraday'
2
+ require 'simple_oauth'
3
+
4
+ module GooglePlus
5
+ module Request
6
+ class GooglePlusOAuth < Faraday::Middleware
7
+
8
+ def call(env)
9
+ params = env[:body] || {}
10
+ signature_params = params
11
+ params.each do |key, value|
12
+ signature_params = {} if value.respond_to?(:content_type)
13
+ end
14
+ header = SimpleOAuth::Header.new(env[:method], env[:url], signature_params, @options)
15
+ env[:request_headers]['Authorization'] = header.to_s
16
+
17
+ @app.call(env)
18
+ end
19
+
20
+ def initialize(app, options)
21
+ @app, @options = app, options
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+
@@ -0,0 +1,23 @@
1
+ require 'faraday'
2
+
3
+ module GooglePlus
4
+ module Request
5
+ class Phoenix < Faraday::Middleware
6
+
7
+ def call(env)
8
+ # Not sure what what the X-Phx (Phoenix?) header is for but it's
9
+ # required to access certain undocumented resources
10
+ # e.g. GET urls/resolve
11
+ env[:request_headers]['X-Phx'] = 'true'
12
+
13
+ @app.call(env)
14
+ end
15
+
16
+ def initialize(app)
17
+ @app = app
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+
@@ -0,0 +1,24 @@
1
+ require 'faraday'
2
+ require 'multi_json'
3
+
4
+ module GooglePlus
5
+ module Response
6
+ class ParseJson < Faraday::Response::Middleware
7
+
8
+ def parse(body)
9
+ case body
10
+ when ''
11
+ nil
12
+ when 'true'
13
+ true
14
+ when 'false'
15
+ false
16
+ else
17
+ ::MultiJson.decode(body)
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,54 @@
1
+ require 'faraday'
2
+ require 'google_plus/error/bad_request'
3
+ require 'google_plus/error/enhance_your_calm'
4
+ require 'google_plus/error/forbidden'
5
+ require 'google_plus/error/not_acceptable'
6
+ require 'google_plus/error/not_found'
7
+ require 'google_plus/error/unauthorized'
8
+
9
+ module GooglePlus
10
+ module Response
11
+ class RaiseClientError < Faraday::Response::Middleware
12
+
13
+ def on_complete(env)
14
+ case env[:status].to_i
15
+ when 400
16
+ raise GooglePlus::Error::BadRequest.new(error_message(env), env[:response_headers])
17
+ when 401
18
+ raise GooglePlus::Error::Unauthorized.new(error_message(env), env[:response_headers])
19
+ when 403
20
+ raise GooglePlus::Error::Forbidden.new(error_message(env), env[:response_headers])
21
+ when 404
22
+ raise GooglePlus::Error::NotFound.new(error_message(env), env[:response_headers])
23
+ when 406
24
+ raise GooglePlus::Error::NotAcceptable.new(error_message(env), env[:response_headers])
25
+ when 420
26
+ raise GooglePlus::Error::EnhanceYourCalm.new(error_message(env), env[:response_headers])
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def error_message(env)
33
+ "#{env[:method].to_s.upcase} #{env[:url].to_s}: #{env[:status]}#{error_body(env[:body])}"
34
+ end
35
+
36
+ def error_body(body)
37
+ if body.nil?
38
+ nil
39
+ elsif body['error']
40
+ ": #{body['error']}"
41
+ elsif body['errors']
42
+ first = Array(body['errors']).first
43
+ if first.kind_of? Hash
44
+ ": #{first['message'].chomp}"
45
+ else
46
+ ": #{first.chomp}"
47
+ end
48
+ end
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+
@@ -0,0 +1,30 @@
1
+ require 'faraday'
2
+ require 'google_plus/error/bad_gateway'
3
+ require 'google_plus/error/internal_server_error'
4
+ require 'google_plus/error/service_unavailable'
5
+
6
+ module GooglePlus
7
+ module Response
8
+ class RaiseServerError < Faraday::Response::Middleware
9
+
10
+ def on_complete(env)
11
+ case env[:status].to_i
12
+ when 500
13
+ raise GooglePlus::Error::InternalServerError.new(error_message(env, "Something is technically wrong."), env[:response_headers])
14
+ when 502
15
+ raise GooglePlus::Error::BadGateway.new(error_message(env, "GooglePlus is down or being upgraded."), env[:response_headers])
16
+ when 503
17
+ raise GooglePlus::Error::ServiceUnavailable.new(error_message(env, "(__-){ GooglePlus is over capacity."), env[:response_headers])
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def error_message(env, body=nil)
24
+ "#{env[:method].to_s.upcase} #{env[:url].to_s}: #{[env[:status].to_s + ':', body].compact.join(' ')} Check http://status.google_plus.com/ for updates on the status of the GooglePlus service."
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+
@@ -0,0 +1,17 @@
1
+ require 'google_plus/base'
2
+
3
+ module GooglePlus
4
+ class Size < GooglePlus::Base
5
+ lazy_attr_reader :h, :resize, :w
6
+ alias :height :h
7
+ alias :width :w
8
+
9
+ # @param other [GooglePlus::Size]
10
+ # @return [Boolean]
11
+ def ==(other)
12
+ super || (other.class == self.class && other.h == self.h && other.w == self.w)
13
+ end
14
+
15
+ end
16
+ end
17
+
@@ -0,0 +1,87 @@
1
+ require 'google_plus/base'
2
+ require 'google_plus/creatable'
3
+ #require 'google_plus/geo_factory'
4
+ #require 'google_plus/media_factory'
5
+ #require 'google_plus/metadata'
6
+ #require 'google_plus/place'
7
+ require 'google_plus/user'
8
+ #require 'google_plus-text'
9
+
10
+ module GooglePlus
11
+ class Status < GooglePlus::Base
12
+ include GooglePlus::Creatable
13
+ lazy_attr_reader :favorited, :from_user, :from_user_id, :id,
14
+ :in_reply_to_screen_name, :in_reply_to_attrs_id, :in_reply_to_user_id,
15
+ :iso_language_code, :profile_image_url, :retweet_count, :retweeted,
16
+ :source, :text, :to_user, :to_user_id, :truncated
17
+ alias :favorited? :favorited
18
+ alias :retweeted? :retweeted
19
+ alias :truncated? :truncated
20
+
21
+ # @param other [Twiter::Status]
22
+ # @return [Boolean]
23
+ def ==(other)
24
+ super || (other.class == self.class && other.id == self.id)
25
+ end
26
+
27
+ # @return [Array<String>]
28
+ def all_urls
29
+ @all_urls ||= begin
30
+ all_urls = [ urls, expanded_urls ].flatten.compact.uniq
31
+ all_urls.length > 0 ? all_urls : nil
32
+ end
33
+ end
34
+
35
+ # @return [Array<String>]
36
+ def expanded_urls
37
+ @expanded_urls ||= Array(@attrs['entities']['urls']).map do |url|
38
+ url['expanded_url']
39
+ end unless @attrs['entities'].nil?
40
+ end
41
+
42
+ # @return [GooglePlus::Point, GooglePlus::Polygon]
43
+ # def geo
44
+ # @geo ||= GooglePlus::GeoFactory.new(@attrs['geo']) unless @attrs['geo'].nil?
45
+ # end
46
+
47
+ # @return [Array<String>]
48
+ def hashtags
49
+ @hashtags ||= GooglePlus::Extractor.extract_hashtags(@attrs['text']) unless @attrs['text'].nil?
50
+ end
51
+
52
+ # @return [Array]
53
+ def media
54
+ @media ||= Array(@attrs['entities']['media']).map do |media|
55
+ GooglePlus::MediaFactory.new(media)
56
+ end unless @attrs['entities'].nil?
57
+ end
58
+
59
+ # @return [GooglePlus::Metadata]
60
+ def metadata
61
+ @metadata ||= GooglePlus::Metadata.new(@attrs['metadata']) unless @attrs['metadata'].nil?
62
+ end
63
+
64
+ # @return [GooglePlus::Place]
65
+ def place
66
+ @place ||= GooglePlus::Place.new(@attrs['place']) unless @attrs['place'].nil?
67
+ end
68
+
69
+ # @return [Array<String>]
70
+ def urls
71
+ @urls ||= GooglePlus::Extractor.extract_urls(@attrs['text']) unless @attrs['text'].nil?
72
+ end
73
+
74
+ # @return [GooglePlus::User]
75
+ def user
76
+ @user ||= GooglePlus::User.new(@attrs['user'].merge('status' => self.to_hash.delete_if{|key, value| key == 'user'})) unless @attrs['user'].nil?
77
+ end
78
+
79
+ # @return [Array<String>]
80
+ def user_mentions
81
+ @user_mentions ||= GooglePlus::Extractor.extract_mentioned_screen_names(@attrs['text']) unless @attrs['text'].nil?
82
+ end
83
+ alias :mentions :user_mentions
84
+
85
+ end
86
+ end
87
+
@@ -0,0 +1,65 @@
1
+ require 'google_plus/authenticatable'
2
+ require 'google_plus/base'
3
+ require 'google_plus/creatable'
4
+ require 'google_plus/status'
5
+
6
+ module GooglePlus
7
+ class User < GooglePlus::Base
8
+ include GooglePlus::Authenticatable
9
+ include GooglePlus::Creatable
10
+ lazy_attr_reader :all_replies, :blocking, :can_dm, :connections,
11
+ :contributors_enabled, :default_profile, :default_profile_image,
12
+ :description, :favourites_count, :follow_request_sent, :followed_by,
13
+ :followers_count, :following, :friends_count, :geo_enabled, :id,
14
+ :is_translator, :lang, :listed_count, :location, :marked_spam, :name,
15
+ :notifications, :notifications_enabled, :profile_background_color,
16
+ :profile_background_image_url, :profile_background_image_url_https,
17
+ :profile_background_tile, :profile_image_url, :profile_image_url_https,
18
+ :profile_link_color, :profile_sidebar_border_color,
19
+ :profile_sidebar_fill_color, :profile_text_color,
20
+ :profile_use_background_image, :protected, :screen_name, :statuses_count,
21
+ :time_zone, :url, :utc_offset, :verified, :want_retweets
22
+ alias :all_replies? :all_replies
23
+ alias :blocking? :blocking
24
+ alias :can_dm? :can_dm
25
+ alias :contributors_enabled? :contributors_enabled
26
+ alias :default_profile? :default_profile
27
+ alias :default_profile_image? :default_profile_image
28
+ alias :follow_request_sent? :follow_request_sent
29
+ alias :following? :following
30
+ alias :followed_by? :followed_by
31
+ alias :favorites :favourites_count
32
+ alias :favorites_count :favourites_count
33
+ alias :favourites :favourites_count
34
+ alias :followers :followers_count
35
+ alias :friends :friends_count
36
+ alias :geo_enabled? :geo_enabled
37
+ alias :is_translator? :is_translator
38
+ alias :listed :listed_count
39
+ alias :marked_spam? :marked_spam
40
+ alias :notifications? :notifications
41
+ alias :notifications_enabled? :notifications_enabled
42
+ alias :profile_background_tile? :profile_background_tile
43
+ alias :profile_use_background_image? :profile_use_background_image
44
+ alias :protected? :protected
45
+ alias :statuses :statuses_count
46
+ alias :translator :is_translator
47
+ alias :translator? :is_translator
48
+ alias :updates :statuses_count
49
+ alias :verified? :verified
50
+ alias :want_retweets? :want_retweets
51
+
52
+ # @param other [GooglePlus::User]
53
+ # @return [Boolean]
54
+ def ==(other)
55
+ super || (other.class == self.class && other.id == self.id)
56
+ end
57
+
58
+ # @return [GooglePlus::Status]
59
+ def status
60
+ @status ||= GooglePlus::Status.new(@attrs['status'].merge('user' => self.to_hash.delete_if{|key, value| key == 'status'})) unless @attrs['status'].nil?
61
+ end
62
+
63
+ end
64
+ end
65
+
@@ -0,0 +1,31 @@
1
+ module GooglePlus
2
+ class Version
3
+
4
+ # @return [Integer]
5
+ def self.major
6
+ 0
7
+ end
8
+
9
+ # @return [Integer]
10
+ def self.minor
11
+ 0
12
+ end
13
+
14
+ # @return [Integer]
15
+ def self.patch
16
+ 1
17
+ end
18
+
19
+ # @return [String, NilClass]
20
+ def self.pre
21
+ nil
22
+ end
23
+
24
+ # @return [String]
25
+ def self.to_s
26
+ [major, minor, patch, pre].compact.join('.')
27
+ end
28
+
29
+ end
30
+ end
31
+
data/test/helper.rb ADDED
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'minitest/unit'
11
+
12
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
13
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ require 'GooglePlus'
15
+
16
+ class MiniTest::Unit::TestCase
17
+ end
18
+
19
+ MiniTest::Unit.autorun
@@ -0,0 +1,14 @@
1
+ require 'helper'
2
+ require 'GooglePlus'
3
+ require 'awesome_print'
4
+ require 'minitest/spec'
5
+ require 'minitest/autorun'
6
+
7
+ describe GooglePlus::Client do
8
+
9
+ it "works" do
10
+ ap GooglePlus.user("105093035030087454990", {:key => YOUR_GPLUS_API_KEY})
11
+ end
12
+
13
+ end
14
+
metadata ADDED
@@ -0,0 +1,255 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: GooglePlus
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - rubycoder1
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-25 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: &2160177960 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2160177960
25
+ - !ruby/object:Gem::Dependency
26
+ name: simple_oauth
27
+ requirement: &2160177480 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2160177480
36
+ - !ruby/object:Gem::Dependency
37
+ name: multi_json
38
+ requirement: &2160177000 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2160177000
47
+ - !ruby/object:Gem::Dependency
48
+ name: activesupport
49
+ requirement: &2160176520 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *2160176520
58
+ - !ruby/object:Gem::Dependency
59
+ name: awesome_print
60
+ requirement: &2160176040 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2160176040
69
+ - !ruby/object:Gem::Dependency
70
+ name: ruby-debug19
71
+ requirement: &2160175560 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *2160175560
80
+ - !ruby/object:Gem::Dependency
81
+ name: ruby-debug-ide
82
+ requirement: &2160175080 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *2160175080
91
+ - !ruby/object:Gem::Dependency
92
+ name: minitest
93
+ requirement: &2160174600 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *2160174600
102
+ - !ruby/object:Gem::Dependency
103
+ name: yard
104
+ requirement: &2160174120 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.6.0
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *2160174120
113
+ - !ruby/object:Gem::Dependency
114
+ name: bundler
115
+ requirement: &2160173640 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ~>
119
+ - !ruby/object:Gem::Version
120
+ version: 1.0.0
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *2160173640
124
+ - !ruby/object:Gem::Dependency
125
+ name: jeweler
126
+ requirement: &2160189520 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 1.5.2
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *2160189520
135
+ - !ruby/object:Gem::Dependency
136
+ name: rcov
137
+ requirement: &2160189040 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *2160189040
146
+ - !ruby/object:Gem::Dependency
147
+ name: ruby-debug19
148
+ requirement: &2160188560 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *2160188560
157
+ - !ruby/object:Gem::Dependency
158
+ name: ruby-debug-ide
159
+ requirement: &2160188080 !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: *2160188080
168
+ description: Ruby wrapper for GooglePlus API heavily inspired by the twitter gem.
169
+ email: rubycoder1@gmail.com
170
+ executables: []
171
+ extensions: []
172
+ extra_rdoc_files:
173
+ - LICENSE.txt
174
+ - README.rdoc
175
+ files:
176
+ - .document
177
+ - Gemfile
178
+ - Gemfile.lock
179
+ - LICENSE.txt
180
+ - README.rdoc
181
+ - Rakefile
182
+ - VERSION
183
+ - lib/GooglePlus.rb
184
+ - lib/google_plus/api.rb
185
+ - lib/google_plus/authenticatable.rb
186
+ - lib/google_plus/base.rb
187
+ - lib/google_plus/client.rb
188
+ - lib/google_plus/client/activity.rb
189
+ - lib/google_plus/client/comments.rb
190
+ - lib/google_plus/client/users.rb
191
+ - lib/google_plus/config.rb
192
+ - lib/google_plus/configuration.rb
193
+ - lib/google_plus/connection.rb
194
+ - lib/google_plus/core_ext/hash.rb
195
+ - lib/google_plus/creatable.rb
196
+ - lib/google_plus/cursor.rb
197
+ - lib/google_plus/direct_message.rb
198
+ - lib/google_plus/error.rb
199
+ - lib/google_plus/error/bad_gateway.rb
200
+ - lib/google_plus/error/bad_request.rb
201
+ - lib/google_plus/error/client_error.rb
202
+ - lib/google_plus/error/enhance_your_calm.rb
203
+ - lib/google_plus/error/forbidden.rb
204
+ - lib/google_plus/error/internal_server_error.rb
205
+ - lib/google_plus/error/not_acceptable.rb
206
+ - lib/google_plus/error/not_found.rb
207
+ - lib/google_plus/error/service_unavailable.rb
208
+ - lib/google_plus/error/unauthorized.rb
209
+ - lib/google_plus/geo_factory.rb
210
+ - lib/google_plus/metadata.rb
211
+ - lib/google_plus/request.rb
212
+ - lib/google_plus/request/gateway.rb
213
+ - lib/google_plus/request/multipart_with_file.rb
214
+ - lib/google_plus/request/oauth.rb
215
+ - lib/google_plus/request/phoenix.rb
216
+ - lib/google_plus/response/parse_json.rb
217
+ - lib/google_plus/response/raise_client_error.rb
218
+ - lib/google_plus/response/raise_server_error.rb
219
+ - lib/google_plus/size.rb
220
+ - lib/google_plus/status.rb
221
+ - lib/google_plus/user.rb
222
+ - lib/google_plus/version.rb
223
+ - test/helper.rb
224
+ - test/test_GooglePlus.rb
225
+ homepage: http://github.com/rubycoder1/GooglePlus
226
+ licenses:
227
+ - MIT
228
+ post_install_message:
229
+ rdoc_options: []
230
+ require_paths:
231
+ - lib
232
+ required_ruby_version: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ! '>='
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ segments:
239
+ - 0
240
+ hash: 1509750903402154550
241
+ required_rubygems_version: !ruby/object:Gem::Requirement
242
+ none: false
243
+ requirements:
244
+ - - ! '>='
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ requirements: []
248
+ rubyforge_project:
249
+ rubygems_version: 1.8.11
250
+ signing_key:
251
+ specification_version: 3
252
+ summary: A Ruby wrapper for the Google+ API
253
+ test_files:
254
+ - test/helper.rb
255
+ - test/test_GooglePlus.rb