yam 0.0.6 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/.travis.yml +5 -0
- data/.yardopts +10 -0
- data/AUTHORS +1 -0
- data/CHANGELOG.md +7 -0
- data/CONTRIBUTING.md +0 -7
- data/Gemfile +27 -1
- data/README.md +190 -67
- data/Rakefile +9 -3
- data/certs/public.pem +20 -0
- data/lib/yammer.rb +47 -0
- data/lib/yammer/api.rb +29 -0
- data/lib/yammer/api/autocomplete.rb +39 -0
- data/lib/yammer/api/group.rb +92 -0
- data/lib/yammer/api/group_membership.rb +46 -0
- data/lib/yammer/api/invitation.rb +39 -0
- data/lib/yammer/api/like.rb +57 -0
- data/lib/yammer/api/message.rb +227 -0
- data/lib/yammer/api/network.rb +35 -0
- data/lib/yammer/api/notification.rb +32 -0
- data/lib/yammer/api/open_graph_object.rb +92 -0
- data/lib/yammer/api/pending_attachment.rb +64 -0
- data/lib/yammer/api/search.rb +42 -0
- data/lib/yammer/api/subscription.rb +32 -0
- data/lib/yammer/api/thread.rb +37 -0
- data/lib/yammer/api/topic.rb +37 -0
- data/lib/yammer/api/user.rb +168 -0
- data/lib/yammer/api_handler.rb +27 -0
- data/lib/yammer/api_response.rb +57 -0
- data/lib/yammer/base.rb +208 -0
- data/lib/yammer/client.rb +100 -0
- data/lib/yammer/configurable.rb +81 -0
- data/lib/yammer/error.rb +75 -0
- data/lib/yammer/group.rb +27 -0
- data/lib/yammer/group_membership.rb +25 -0
- data/lib/yammer/http_adapter.rb +100 -0
- data/lib/yammer/identity_map.rb +56 -0
- data/lib/yammer/message.rb +32 -0
- data/lib/yammer/message_body.rb +27 -0
- data/lib/yammer/pending_attachment.rb +19 -0
- data/lib/yammer/thread.rb +58 -0
- data/lib/yammer/user.rb +66 -0
- data/lib/yammer/version.rb +32 -0
- data/{lib/yam/configuration.rb → spec/api/autocomplete_spec.rb} +18 -23
- data/spec/api/group_membership_spec.rb +48 -0
- data/spec/api/group_spec.rb +76 -0
- data/spec/api/invitation_spec.rb +60 -0
- data/spec/api/like_spec.rb +46 -0
- data/spec/api/message_spec.rb +136 -0
- data/spec/api/network_spec.rb +41 -0
- data/{lib/yam/client.rb → spec/api/notification_spec.rb} +22 -4
- data/spec/api/open_graph_object_spec.rb +67 -0
- data/spec/api/pending_attachment_spec.rb +56 -0
- data/{lib/yam/constants.rb → spec/api/search_spec.rb} +21 -8
- data/spec/api/subscription_spec.rb +41 -0
- data/{lib/yam.rb → spec/api/thread_spec.rb} +19 -12
- data/{lib/yam/request.rb → spec/api/topic_spec.rb} +19 -15
- data/spec/api/user_spec.rb +108 -0
- data/spec/api_response.rb +86 -0
- data/spec/client_spec.rb +364 -0
- data/spec/error_spec.rb +88 -0
- data/spec/fixtures/group.json +1 -0
- data/spec/fixtures/message.json +1 -0
- data/spec/fixtures/messages_in_thread.json +1 -0
- data/spec/fixtures/portal_thread.json +1 -0
- data/spec/fixtures/private_thread.json +1 -0
- data/spec/fixtures/public_thread.json +1 -0
- data/spec/fixtures/user.json +1 -0
- data/spec/fixtures/users_followed.json +1 -0
- data/spec/fixtures/users_following.json +1 -0
- data/spec/http_adapter_spec.rb +109 -0
- data/spec/identity_map_spec.rb +127 -0
- data/spec/mocks/attachment.txt +1 -0
- data/spec/model/base_spec.rb +196 -0
- data/spec/model/group_membership_spec.rb +57 -0
- data/spec/model/group_spec.rb +73 -0
- data/spec/model/message_spec.rb +74 -0
- data/spec/model/thread_spec.rb +91 -0
- data/spec/model/user_spec.rb +222 -0
- data/spec/spec_helper.rb +39 -14
- data/yam.gemspec +50 -28
- metadata +270 -187
- metadata.gz.sig +0 -0
- data/lib/yam/api.rb +0 -53
- data/lib/yam/connection.rb +0 -57
- data/lib/yam/version.rb +0 -20
- data/spec/yam/client_spec.rb +0 -50
- data/spec/yam_spec.rb +0 -87
metadata.gz.sig
ADDED
Binary file
|
data/lib/yam/api.rb
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
# Copyright (c) Microsoft Corporation
|
2
|
-
# All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
-
# ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
|
12
|
-
# IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR
|
13
|
-
# PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
|
14
|
-
#
|
15
|
-
# See the Apache Version 2.0 License for specific language governing
|
16
|
-
# permissions and limitations under the License.
|
17
|
-
|
18
|
-
# API setup and configuration
|
19
|
-
require 'yam/configuration'
|
20
|
-
require 'yam/connection'
|
21
|
-
require 'yam/request'
|
22
|
-
|
23
|
-
module Yam
|
24
|
-
class API
|
25
|
-
include Connection
|
26
|
-
include Request
|
27
|
-
attr_reader *Configuration::VALID_OPTIONS_KEYS
|
28
|
-
attr_reader :oauth_token, :endpoint
|
29
|
-
|
30
|
-
class_eval do
|
31
|
-
Configuration::VALID_OPTIONS_KEYS.each do |key|
|
32
|
-
define_method "#{key}=" do |arg|
|
33
|
-
self.instance_variable_set("@#{key}", arg)
|
34
|
-
Yam.send("#{key}=", arg)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def initialize(oauth_token, endpoint)
|
40
|
-
@oauth_token = oauth_token
|
41
|
-
@endpoint = endpoint
|
42
|
-
setup({})
|
43
|
-
end
|
44
|
-
|
45
|
-
def setup(options={})
|
46
|
-
options = Yam.options.merge(options)
|
47
|
-
|
48
|
-
Configuration::VALID_OPTIONS_KEYS.each do |key|
|
49
|
-
send("#{key}=", options[key])
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
data/lib/yam/connection.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# Copyright (c) Microsoft Corporation
|
2
|
-
# All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
-
# ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
|
12
|
-
# IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR
|
13
|
-
# PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
|
14
|
-
#
|
15
|
-
# See the Apache Version 2.0 License for specific language governing
|
16
|
-
# permissions and limitations under the License.
|
17
|
-
|
18
|
-
require 'faraday'
|
19
|
-
require 'faraday_middleware/request/oauth2'
|
20
|
-
require 'faraday_middleware/response/mashify'
|
21
|
-
require 'faraday_middleware/response/parse_json'
|
22
|
-
require 'yam/constants'
|
23
|
-
|
24
|
-
module Yam
|
25
|
-
module Connection
|
26
|
-
extend self
|
27
|
-
include Yam::Constants
|
28
|
-
|
29
|
-
def default_options(options={})
|
30
|
-
{
|
31
|
-
:headers => {
|
32
|
-
ACCEPT => 'application/json',
|
33
|
-
ACCEPT_CHARSET => 'utf-8',
|
34
|
-
USER_AGENT => user_agent
|
35
|
-
},
|
36
|
-
:ssl => { :verify => true },
|
37
|
-
:url => options.fetch(:endpoint) { endpoint }
|
38
|
-
}.merge(options)
|
39
|
-
end
|
40
|
-
|
41
|
-
# Returns a Faraday::Connection object
|
42
|
-
def connection(options = {})
|
43
|
-
conn_options = default_options(options)
|
44
|
-
clear_cache unless options.empty?
|
45
|
-
puts "OPTIONS:#{conn_options.inspect}" if ENV['DEBUG']
|
46
|
-
|
47
|
-
@connection ||= Faraday.new(conn_options) do |conn|
|
48
|
-
conn.use Faraday::Response::Mashify
|
49
|
-
conn.use FaradayMiddleware::ParseJson
|
50
|
-
conn.response :raise_error
|
51
|
-
conn.use FaradayMiddleware::OAuth2, oauth_token
|
52
|
-
conn.request :url_encoded
|
53
|
-
conn.adapter adapter
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
data/lib/yam/version.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# Copyright (c) Microsoft Corporation
|
2
|
-
# All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
-
# ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
|
12
|
-
# IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR
|
13
|
-
# PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
|
14
|
-
#
|
15
|
-
# See the Apache Version 2.0 License for specific language governing
|
16
|
-
# permissions and limitations under the License.
|
17
|
-
|
18
|
-
module Yam
|
19
|
-
VERSION = '0.0.6'
|
20
|
-
end
|
data/spec/yam/client_spec.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
# Copyright (c) Microsoft Corporation
|
2
|
-
# All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
-
# ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
|
12
|
-
# IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR
|
13
|
-
# PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
|
14
|
-
#
|
15
|
-
# See the Apache Version 2.0 License for specific language governing
|
16
|
-
# permissions and limitations under the License.
|
17
|
-
|
18
|
-
require 'spec_helper'
|
19
|
-
|
20
|
-
describe Yam::Client, '#get' do
|
21
|
-
it 'makes requests' do
|
22
|
-
access_token = 'ABC123'
|
23
|
-
endpoint_with_token = "#{ENDPOINT}?access_token=#{access_token}"
|
24
|
-
stub_request(:get, endpoint_with_token).
|
25
|
-
with(:headers => { 'Authorization'=>'Token token="ABC123"' })
|
26
|
-
|
27
|
-
instance = Yam::Client.new(access_token, ENDPOINT)
|
28
|
-
instance.get('/')
|
29
|
-
|
30
|
-
expect(a_request(:get, endpoint_with_token).
|
31
|
-
with(:headers => { 'Authorization'=>'Token token="ABC123"' })).
|
32
|
-
to have_been_made
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe Yam::Client, '#post' do
|
37
|
-
it 'makes requests' do
|
38
|
-
access_token = 'ABC123'
|
39
|
-
endpoint_with_token = "#{ENDPOINT}?access_token=#{access_token}"
|
40
|
-
stub_request(:post, endpoint_with_token).
|
41
|
-
with(:headers => { 'Authorization'=>'Token token="ABC123"' })
|
42
|
-
|
43
|
-
instance = Yam::Client.new(access_token, ENDPOINT)
|
44
|
-
instance.post('/')
|
45
|
-
|
46
|
-
expect(a_request(:post, endpoint_with_token).
|
47
|
-
with(:headers => { 'Authorization'=>'Token token="ABC123"' })).
|
48
|
-
to have_been_made
|
49
|
-
end
|
50
|
-
end
|
data/spec/yam_spec.rb
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
# Copyright (c) Microsoft Corporation
|
2
|
-
# All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
-
# ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
|
12
|
-
# IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR
|
13
|
-
# PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
|
14
|
-
#
|
15
|
-
# See the Apache Version 2.0 License for specific language governing
|
16
|
-
# permissions and limitations under the License.
|
17
|
-
|
18
|
-
require 'spec_helper'
|
19
|
-
|
20
|
-
class TestClass
|
21
|
-
end
|
22
|
-
|
23
|
-
describe Yam do
|
24
|
-
after do
|
25
|
-
Yam.set_defaults
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'responds to \'new\' message' do
|
29
|
-
Yam.should respond_to :new
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'receives \'new\' and initialize an instance' do
|
33
|
-
access_token = 'ABC123'
|
34
|
-
|
35
|
-
instance = Yam.new(access_token, Yam::Configuration::DEFAULT_API_ENDPOINT)
|
36
|
-
|
37
|
-
instance.should be_a Yam::Client
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'delegates to a Yam::Client instance' do
|
41
|
-
access_token = 'ABC123'
|
42
|
-
Yam::Client.any_instance.stubs(:stubbed_method)
|
43
|
-
|
44
|
-
instance = Yam.new(access_token, Yam::Configuration::DEFAULT_API_ENDPOINT)
|
45
|
-
instance.stubbed_method
|
46
|
-
|
47
|
-
Yam::Client.any_instance.should have_received(:stubbed_method)
|
48
|
-
end
|
49
|
-
|
50
|
-
describe 'setting configuration options' do
|
51
|
-
it 'returns the default adapter' do
|
52
|
-
adapter = Yam.adapter
|
53
|
-
|
54
|
-
adapter.should == Yam::Configuration::DEFAULT_ADAPTER
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'allows setting the adapter' do
|
58
|
-
Yam.adapter = :typhoeus
|
59
|
-
|
60
|
-
Yam.adapter.should == :typhoeus
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'returns the default end point' do
|
64
|
-
Yam.endpoint.should == Yam::Configuration::DEFAULT_API_ENDPOINT
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'allows setting the endpoint' do
|
68
|
-
Yam.endpoint = 'http://www.example.com'
|
69
|
-
Yam.endpoint.should == 'http://www.example.com'
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'returns the default user agent' do
|
73
|
-
Yam.user_agent.should == Yam::Configuration::DEFAULT_USER_AGENT
|
74
|
-
end
|
75
|
-
|
76
|
-
it 'allows setting the user agent' do
|
77
|
-
Yam.user_agent = 'New User Agent'
|
78
|
-
|
79
|
-
Yam.user_agent.should == 'New User Agent'
|
80
|
-
end
|
81
|
-
|
82
|
-
it 'allows setting the current api client' do
|
83
|
-
Yam.should respond_to :api_client=
|
84
|
-
Yam.should respond_to :api_client
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|