yammer-client 0.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.
Files changed (67) hide show
  1. data/.gitignore +29 -0
  2. data/.travis.yml +9 -0
  3. data/.yardopts +10 -0
  4. data/CHANGELOG.md +0 -0
  5. data/Gemfile +13 -0
  6. data/LICENSE.md +20 -0
  7. data/README.md +265 -0
  8. data/Rakefile +12 -0
  9. data/certs/tiabas-public.pem +21 -0
  10. data/lib/yammer.rb +28 -0
  11. data/lib/yammer/api.rb +10 -0
  12. data/lib/yammer/api/autocomplete.rb +25 -0
  13. data/lib/yammer/api/group.rb +78 -0
  14. data/lib/yammer/api/group_membership.rb +32 -0
  15. data/lib/yammer/api/message.rb +196 -0
  16. data/lib/yammer/api/network.rb +21 -0
  17. data/lib/yammer/api/notification.rb +18 -0
  18. data/lib/yammer/api/search.rb +28 -0
  19. data/lib/yammer/api/thread.rb +23 -0
  20. data/lib/yammer/api/topic.rb +21 -0
  21. data/lib/yammer/api/user.rb +156 -0
  22. data/lib/yammer/client.rb +101 -0
  23. data/lib/yammer/configurable.rb +46 -0
  24. data/lib/yammer/error.rb +61 -0
  25. data/lib/yammer/http_connection.rb +184 -0
  26. data/lib/yammer/identity_map.rb +42 -0
  27. data/lib/yammer/model.rb +6 -0
  28. data/lib/yammer/model/base.rb +133 -0
  29. data/lib/yammer/model/group.rb +13 -0
  30. data/lib/yammer/model/group_membership.rb +11 -0
  31. data/lib/yammer/model/message.rb +17 -0
  32. data/lib/yammer/model/message_body.rb +13 -0
  33. data/lib/yammer/model/thread.rb +44 -0
  34. data/lib/yammer/model/user.rb +46 -0
  35. data/lib/yammer/response.rb +43 -0
  36. data/lib/yammer/version.rb +18 -0
  37. data/spec/api/autocomplete_spec.rb +23 -0
  38. data/spec/api/group_membership_spec.rb +30 -0
  39. data/spec/api/group_spec.rb +58 -0
  40. data/spec/api/message_spec.rb +118 -0
  41. data/spec/api/network_spec.rb +23 -0
  42. data/spec/api/notification_spec.rb +23 -0
  43. data/spec/api/search_spec.rb +23 -0
  44. data/spec/api/thread_spec.rb +23 -0
  45. data/spec/api/topic_spec.rb +23 -0
  46. data/spec/api/user_spec.rb +76 -0
  47. data/spec/client_spec.rb +208 -0
  48. data/spec/connection_spec.rb +280 -0
  49. data/spec/error_spec.rb +69 -0
  50. data/spec/fixtures/group.json +1 -0
  51. data/spec/fixtures/message.json +1 -0
  52. data/spec/fixtures/messages_in_thread.json +1 -0
  53. data/spec/fixtures/portal_thread.json +1 -0
  54. data/spec/fixtures/private_thread.json +1 -0
  55. data/spec/fixtures/public_thread.json +1 -0
  56. data/spec/fixtures/user.json +1 -0
  57. data/spec/identity_map_spec.rb +108 -0
  58. data/spec/model/base_spec.rb +155 -0
  59. data/spec/model/group_membership_spec.rb +27 -0
  60. data/spec/model/group_spec.rb +44 -0
  61. data/spec/model/message_spec.rb +45 -0
  62. data/spec/model/thread_spec.rb +66 -0
  63. data/spec/model/user_spec.rb +150 -0
  64. data/spec/response_spec.rb +66 -0
  65. data/spec/spec_helper.rb +42 -0
  66. data/yammer.gemspec +29 -0
  67. metadata +270 -0
@@ -0,0 +1,66 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+ require 'yammer/response'
3
+
4
+ describe Yammer::Response do
5
+
6
+ context 'successful response' do
7
+ subject { Yammer::Response.new(double(
8
+ :header => { 'Location' => 'https://www.yammer.com/api/v1/messages/2' },
9
+ :body => '{ "system_message":false, "direct_message":true, "id":10928508, "privacy":"private", "network_id":1 }',
10
+ :code => '200')
11
+ )}
12
+
13
+ describe '#raw_body' do
14
+ it 'returns a string' do
15
+ expect(subject.raw_body).to eq('{ "system_message":false, "direct_message":true, "id":10928508, "privacy":"private", "network_id":1 }')
16
+ end
17
+ end
18
+
19
+ describe '#body' do
20
+ it 'return a hash' do
21
+ expect(subject.body).to eq({ :system_message => false, :direct_message => true, :id => 10928508, :privacy => 'private', :network_id => 1 })
22
+ end
23
+ end
24
+
25
+ describe '#success' do
26
+ it 'returns true' do
27
+ expect(subject.success?).to eq true
28
+ end
29
+ end
30
+
31
+ describe '#created?' do
32
+ it 'returns true' do
33
+ expect(subject.created?).to eq false
34
+ end
35
+ end
36
+ end
37
+
38
+ context 'failed response' do
39
+
40
+ subject { Yammer::Response.new(double( :header => {}, :body => '', :code => '500')) }
41
+
42
+ describe '#raw_body' do
43
+ it 'returns a string' do
44
+ expect(subject.raw_body).to eq('')
45
+ end
46
+ end
47
+
48
+ describe '#body' do
49
+ it 'return a hash' do
50
+ expect(subject.raw_body).to eq('')
51
+ end
52
+ end
53
+
54
+ describe '#success' do
55
+ it 'returns true' do
56
+ expect(subject.success?).to eq false
57
+ end
58
+ end
59
+
60
+ describe '#created?' do
61
+ it 'returns true' do
62
+ expect(subject.created?).to eq false
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,42 @@
1
+ unless ENV['CI']
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter 'spec'
5
+ end
6
+ end
7
+
8
+ require 'rspec'
9
+ require 'rspec/autorun'
10
+ require 'webmock/rspec'
11
+ require 'yammer'
12
+
13
+ RSpec.configure do |config|
14
+ config.mock_with :rspec
15
+ config.expect_with :rspec do |c|
16
+ c.syntax = :expect
17
+ end
18
+ end
19
+
20
+ def stub_delete(path='')
21
+ stub_request(:delete, "https://www.yammer.com#{path}")
22
+ end
23
+
24
+ def stub_get(path='')
25
+ stub_request(:get, "https://www.yammer.com#{path}")
26
+ end
27
+
28
+ def stub_post(path='')
29
+ stub_request(:post, "https://www.yammer.com#{path}")
30
+ end
31
+
32
+ def stub_put(path='')
33
+ stub_request(:put, "https://www.yammer.com#{path}")
34
+ end
35
+
36
+ def fixture_path
37
+ File.expand_path("../fixtures", __FILE__)
38
+ end
39
+
40
+ def fixture(file)
41
+ File.new("#{fixture_path}/#{file}")
42
+ end
data/yammer.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'yammer/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'yammer-client'
7
+ s.version = Yammer::Version
8
+ s.date = %q{2013-04-08}
9
+ s.summary = "Yammer API Client - beta"
10
+ s.description = "A Ruby wrapper for accessing Yammer's REST API"
11
+ s.authors = ["Kevin Mutyaba"]
12
+ s.email = %q{tiabasnk@gmail.com}
13
+ s.homepage = 'http://tiabas.github.io/yammer-client'
14
+ s.rubygems_version = Yammer::Version
15
+ s.files = `git ls-files`.split("\n")
16
+ s.require_paths = ['lib']
17
+ s.cert_chain = ['tiabas-public.pem']
18
+ s.licenses = ['MIT']
19
+ s.test_files = Dir.glob("spec/**/*")
20
+
21
+ s.add_dependency 'oauth2-client', '>= 1.1.2'
22
+ s.add_dependency 'addressable'
23
+ s.add_dependency 'oj', '>= 2.0.10'
24
+ s.add_dependency 'multi_json', '>= 1.3'
25
+ s.add_development_dependency 'rake'
26
+ s.add_development_dependency 'rspec'
27
+ s.add_development_dependency 'simplecov', '>= 0.7.1'
28
+ s.add_development_dependency 'webmock', '>= 1.9.0'
29
+ end
metadata ADDED
@@ -0,0 +1,270 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yammer-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kevin Mutyaba
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain:
12
+ - tiabas-public.pem
13
+ date: 2013-04-08 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: oauth2-client
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 1.1.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: 1.1.2
31
+ - !ruby/object:Gem::Dependency
32
+ name: addressable
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: oj
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.0.10
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: 2.0.10
63
+ - !ruby/object:Gem::Dependency
64
+ name: multi_json
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '1.3'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '1.3'
79
+ - !ruby/object:Gem::Dependency
80
+ name: rake
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: rspec
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: 0.7.1
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: 0.7.1
127
+ - !ruby/object:Gem::Dependency
128
+ name: webmock
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: 1.9.0
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: 1.9.0
143
+ description: A Ruby wrapper for accessing Yammer's REST API
144
+ email: tiabasnk@gmail.com
145
+ executables: []
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - .gitignore
150
+ - .travis.yml
151
+ - .yardopts
152
+ - CHANGELOG.md
153
+ - Gemfile
154
+ - LICENSE.md
155
+ - README.md
156
+ - Rakefile
157
+ - certs/tiabas-public.pem
158
+ - lib/yammer.rb
159
+ - lib/yammer/api.rb
160
+ - lib/yammer/api/autocomplete.rb
161
+ - lib/yammer/api/group.rb
162
+ - lib/yammer/api/group_membership.rb
163
+ - lib/yammer/api/message.rb
164
+ - lib/yammer/api/network.rb
165
+ - lib/yammer/api/notification.rb
166
+ - lib/yammer/api/search.rb
167
+ - lib/yammer/api/thread.rb
168
+ - lib/yammer/api/topic.rb
169
+ - lib/yammer/api/user.rb
170
+ - lib/yammer/client.rb
171
+ - lib/yammer/configurable.rb
172
+ - lib/yammer/error.rb
173
+ - lib/yammer/http_connection.rb
174
+ - lib/yammer/identity_map.rb
175
+ - lib/yammer/model.rb
176
+ - lib/yammer/model/base.rb
177
+ - lib/yammer/model/group.rb
178
+ - lib/yammer/model/group_membership.rb
179
+ - lib/yammer/model/message.rb
180
+ - lib/yammer/model/message_body.rb
181
+ - lib/yammer/model/thread.rb
182
+ - lib/yammer/model/user.rb
183
+ - lib/yammer/response.rb
184
+ - lib/yammer/version.rb
185
+ - spec/api/autocomplete_spec.rb
186
+ - spec/api/group_membership_spec.rb
187
+ - spec/api/group_spec.rb
188
+ - spec/api/message_spec.rb
189
+ - spec/api/network_spec.rb
190
+ - spec/api/notification_spec.rb
191
+ - spec/api/search_spec.rb
192
+ - spec/api/thread_spec.rb
193
+ - spec/api/topic_spec.rb
194
+ - spec/api/user_spec.rb
195
+ - spec/client_spec.rb
196
+ - spec/connection_spec.rb
197
+ - spec/error_spec.rb
198
+ - spec/fixtures/group.json
199
+ - spec/fixtures/message.json
200
+ - spec/fixtures/messages_in_thread.json
201
+ - spec/fixtures/portal_thread.json
202
+ - spec/fixtures/private_thread.json
203
+ - spec/fixtures/public_thread.json
204
+ - spec/fixtures/user.json
205
+ - spec/identity_map_spec.rb
206
+ - spec/model/base_spec.rb
207
+ - spec/model/group_membership_spec.rb
208
+ - spec/model/group_spec.rb
209
+ - spec/model/message_spec.rb
210
+ - spec/model/thread_spec.rb
211
+ - spec/model/user_spec.rb
212
+ - spec/response_spec.rb
213
+ - spec/spec_helper.rb
214
+ - yammer.gemspec
215
+ homepage: http://tiabas.github.io/yammer-client
216
+ licenses:
217
+ - MIT
218
+ post_install_message:
219
+ rdoc_options: []
220
+ require_paths:
221
+ - lib
222
+ required_ruby_version: !ruby/object:Gem::Requirement
223
+ none: false
224
+ requirements:
225
+ - - ! '>='
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ required_rubygems_version: !ruby/object:Gem::Requirement
229
+ none: false
230
+ requirements:
231
+ - - ! '>='
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ requirements: []
235
+ rubyforge_project:
236
+ rubygems_version: 1.8.25
237
+ signing_key:
238
+ specification_version: 3
239
+ summary: Yammer API Client - beta
240
+ test_files:
241
+ - spec/api/autocomplete_spec.rb
242
+ - spec/api/group_membership_spec.rb
243
+ - spec/api/group_spec.rb
244
+ - spec/api/message_spec.rb
245
+ - spec/api/network_spec.rb
246
+ - spec/api/notification_spec.rb
247
+ - spec/api/search_spec.rb
248
+ - spec/api/thread_spec.rb
249
+ - spec/api/topic_spec.rb
250
+ - spec/api/user_spec.rb
251
+ - spec/client_spec.rb
252
+ - spec/connection_spec.rb
253
+ - spec/error_spec.rb
254
+ - spec/fixtures/group.json
255
+ - spec/fixtures/message.json
256
+ - spec/fixtures/messages_in_thread.json
257
+ - spec/fixtures/portal_thread.json
258
+ - spec/fixtures/private_thread.json
259
+ - spec/fixtures/public_thread.json
260
+ - spec/fixtures/user.json
261
+ - spec/identity_map_spec.rb
262
+ - spec/model/base_spec.rb
263
+ - spec/model/group_membership_spec.rb
264
+ - spec/model/group_spec.rb
265
+ - spec/model/message_spec.rb
266
+ - spec/model/thread_spec.rb
267
+ - spec/model/user_spec.rb
268
+ - spec/response_spec.rb
269
+ - spec/spec_helper.rb
270
+ has_rdoc: