yammer 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY.md CHANGED
@@ -1,3 +1,7 @@
1
+ 0.1.2 - April 19th, 2012
2
+ -------------------------
3
+ * [ybenjo](https://github.com/ybenjo) added search, groups and suggestions api support.
4
+
1
5
  0.1.1 - Sept 21st, 2011
2
6
  -------------------------
3
7
  * [Rob Warner](https://github.com/hoop33) added about_topic and user[:id]
@@ -10,11 +10,17 @@ module Yammer
10
10
  require 'yammer/client/messages'
11
11
  require 'yammer/client/feed'
12
12
  require 'yammer/client/users'
13
+ require 'yammer/client/search'
14
+ require 'yammer/client/suggestions'
15
+ require 'yammer/client/groups'
13
16
 
14
17
  alias :api_endpoint :endpoint
15
18
 
16
19
  include Yammer::Client::Messages
17
20
  include Yammer::Client::Feed
18
21
  include Yammer::Client::Users
22
+ include Yammer::Client::Search
23
+ include Yammer::Client::Suggestions
24
+ include Yammer::Client::Groups
19
25
  end
20
26
  end
@@ -0,0 +1,44 @@
1
+ module Yammer
2
+ class Client
3
+ # Defines methods related to groups
4
+ module Groups
5
+ # Get groups information.
6
+ # @see https://developer.yammer.com/api/#groups
7
+ #
8
+ # @format `:json`
9
+ # @authenticated true
10
+ # @rate_limited unconfirmed
11
+ # @param options [Hash] A customizable set of options.
12
+ # @option options [Integer] :page 20 groups will be shown per page.
13
+ # @option options [String] :letter Return groups beginning with the given letter.
14
+ # @option options [messages|members|privacy|created_at|creator] :sort_by Results will be returned sorted by one of the above options instead of the default behavior of sorting by number of messages.
15
+ # @option options [String] :reverse Return results in reverse order if uses true.
16
+ # @option options [String] :private Used when creating or updating groups to make them private if uses true.
17
+ # @return [Hashie::Mash] Informations of groups.
18
+ def groups(options={})
19
+ get("groups", options)
20
+ end
21
+
22
+ # Get specific group information.
23
+ #
24
+ # @format `:json`
25
+ # @authenticated true
26
+ # @rate_limited unconfirmed
27
+ # @param id [Integer] The id of specific group.
28
+ # @return [Hashie::Mash] Informations of group which id is #{id}.
29
+ def group(id, options={})
30
+ get("groups/#{id}", options)
31
+ end
32
+
33
+ # Create/Update group.
34
+ #
35
+ # @authenticated true
36
+ # @rate_limited unconfirmed
37
+ # @param name [String] The name of group.
38
+ # @param private [String] Used true when creating or updating groups to make them private.
39
+ def create_group(name, options={})
40
+ post('groups', options.merge({:name => name}))
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,24 @@
1
+ module Yammer
2
+ class Client
3
+ # Defines methods related to search
4
+ module Search
5
+ # Returns the 20 lists of messages, users, tags and groups that match the user's search query.
6
+ #
7
+ # @format `:json`
8
+ # @authenticated true
9
+ # @rate_limited ***
10
+ # @param query [String] The search query.
11
+ # @param options [Hash] A customizable set of options.
12
+ # @option options [Integer] :page Only 20 results of each type will be returned for each page, but a total count is returned with each query. page=1 (the default) will return items 1-20, page=2 will return items 21-30, etc.
13
+ # @option options [Integer] :num_per_page limit of search results, up to a maximum of 20, the default value.
14
+ # @return [Hashie::Mash]
15
+ # @see https://developer.yammer.com/api/#search
16
+ # @example
17
+ # Yammer.search("my boss")
18
+ def search(query, options={})
19
+ get('search', options.merge({:search => query}))
20
+ end
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,29 @@
1
+ module Yammer
2
+ class Client
3
+ # Defines methods to get/declines suggestions.
4
+ module Suggestions
5
+ # Return suggested groups and users.
6
+ #
7
+ # @format `:json`
8
+ # @authenticated true
9
+ # @rate_limited
10
+ # @param options [Hash] A customizable set of options.
11
+ # @option options [Integer] :limit Returns only Return only the specified number of suggestions.
12
+ # @return [Hashie::Mash]
13
+ # @see https://developer.yammer.com/api/#suggestions
14
+ # @example
15
+ # Yammer.suggestions
16
+ def suggestions(options={})
17
+ get('suggestions', options)
18
+ end
19
+
20
+ # Decline a suggestion specfic id.
21
+ # @param id [Integer/String] When declining a suggestion, pass its id.
22
+ # @example
23
+ # Yammer.decline_suggestion(12345)
24
+ def decline_suggestion(id)
25
+ delete("suggestions/#{id}")
26
+ end
27
+ end
28
+ end
29
+ end
@@ -25,16 +25,20 @@ module Yammer
25
25
 
26
26
  # Perform an HTTP request
27
27
  def request(method, path, options, format)
28
- response = connection(format).send(method) do |request|
29
- case method.to_sym
30
- when :get, :delete
31
- request.url(formatted_path(path, format), options)
32
- when :post, :put
33
- request.path = formatted_path(path, format)
34
- request.body = options unless options.empty?
35
- end
28
+ begin
29
+ response = connection(format).send(method) do |request|
30
+ case method.to_sym
31
+ when :get, :delete
32
+ request.url(formatted_path(path, format), options)
33
+ when :post, :put
34
+ request.path = formatted_path(path, format)
35
+ request.body = options unless options.empty?
36
+ end
37
+ end
38
+ 'raw' == format.to_s.downcase ? response : response.body
39
+ rescue MultiJson::DecodeError
40
+ Hashie::Mash.new
36
41
  end
37
- 'raw' == format.to_s.downcase ? response : response.body
38
42
  end
39
43
 
40
44
  def formatted_path(path, format)
@@ -1,4 +1,4 @@
1
1
  module Yammer
2
2
  # The version of the gem
3
- VERSION = '0.1.1'.freeze unless defined?(::Yammer::VERSION)
3
+ VERSION = '0.1.2'.freeze unless defined?(::Yammer::VERSION)
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yammer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
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: 2011-09-21 00:00:00.000000000Z
12
+ date: 2012-04-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: maruku
16
- requirement: &70208861748280 !ruby/object:Gem::Requirement
16
+ requirement: &70278642885400 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.6'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70208861748280
24
+ version_requirements: *70278642885400
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70208861747780 !ruby/object:Gem::Requirement
27
+ requirement: &70278642884900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.4'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70208861747780
35
+ version_requirements: *70278642884900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70208861747320 !ruby/object:Gem::Requirement
38
+ requirement: &70278642884140 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.9'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70208861747320
46
+ version_requirements: *70278642884140
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70208861746860 !ruby/object:Gem::Requirement
49
+ requirement: &70278642883360 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '2.6'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70208861746860
57
+ version_requirements: *70278642883360
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &70208861746400 !ruby/object:Gem::Requirement
60
+ requirement: &70278642882500 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0.4'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70208861746400
68
+ version_requirements: *70278642882500
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: webmock
71
- requirement: &70208846232580 !ruby/object:Gem::Requirement
71
+ requirement: &70278642881740 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '1.6'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70208846232580
79
+ version_requirements: *70278642881740
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: yard
82
- requirement: &70208846232120 !ruby/object:Gem::Requirement
82
+ requirement: &70278642881240 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0.7'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70208846232120
90
+ version_requirements: *70278642881240
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: ZenTest
93
- requirement: &70208846231660 !ruby/object:Gem::Requirement
93
+ requirement: &70278642880000 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '4.5'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70208846231660
101
+ version_requirements: *70278642880000
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: hashie
104
- requirement: &70208846231200 !ruby/object:Gem::Requirement
104
+ requirement: &70278642879520 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 1.0.0
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *70208846231200
112
+ version_requirements: *70278642879520
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: faraday
115
- requirement: &70208846230740 !ruby/object:Gem::Requirement
115
+ requirement: &70278642878960 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 0.6.1
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *70208846230740
123
+ version_requirements: *70278642878960
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: faraday_middleware
126
- requirement: &70208846230280 !ruby/object:Gem::Requirement
126
+ requirement: &70278642878440 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 0.6.3
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *70208846230280
134
+ version_requirements: *70278642878440
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: multi_json
137
- requirement: &70208846229820 !ruby/object:Gem::Requirement
137
+ requirement: &70278642877980 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: 1.0.0
143
143
  type: :runtime
144
144
  prerelease: false
145
- version_requirements: *70208846229820
145
+ version_requirements: *70278642877980
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: multi_xml
148
- requirement: &70208846229360 !ruby/object:Gem::Requirement
148
+ requirement: &70278642877520 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ~>
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: 0.2.0
154
154
  type: :runtime
155
155
  prerelease: false
156
- version_requirements: *70208846229360
156
+ version_requirements: *70278642877520
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: simple_oauth
159
- requirement: &70208846228900 !ruby/object:Gem::Requirement
159
+ requirement: &70278642877040 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ~>
@@ -164,7 +164,7 @@ dependencies:
164
164
  version: 0.1.5
165
165
  type: :runtime
166
166
  prerelease: false
167
- version_requirements: *70208846228900
167
+ version_requirements: *70278642877040
168
168
  description: A Ruby wrapper for the Yammer REST API
169
169
  email:
170
170
  - bruno.mattarollo@gmail.com
@@ -189,7 +189,10 @@ files:
189
189
  - lib/yammer/authentication.rb
190
190
  - lib/yammer/client.rb
191
191
  - lib/yammer/client/feed.rb
192
+ - lib/yammer/client/groups.rb
192
193
  - lib/yammer/client/messages.rb
194
+ - lib/yammer/client/search.rb
195
+ - lib/yammer/client/suggestions.rb
193
196
  - lib/yammer/client/users.rb
194
197
  - lib/yammer/configuration.rb
195
198
  - lib/yammer/connection.rb
@@ -217,7 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
220
  version: 1.3.6
218
221
  requirements: []
219
222
  rubyforge_project:
220
- rubygems_version: 1.8.6
223
+ rubygems_version: 1.8.15
221
224
  signing_key:
222
225
  specification_version: 3
223
226
  summary: Ruby wrapper for the Yammer API