yammer-oauth2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,28 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
19
+
20
+ # OS generated files #
21
+ .DS_Store
22
+ .DS_Store?
23
+ ._*
24
+ .Spotlight-V100
25
+ .Trashes
26
+ Icon?
27
+ ehthumbs.db
28
+ Thumbs.db
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.8.7"
4
+ - "1.9.2"
5
+ - "1.9.3"
6
+ # uncomment this line if your project needs to run something other than `rake`:
7
+ # # script: bundle exec rspec spec
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ 0.1.0
2
+ -----
3
+ * [Initial release](https://github.com/tiabas/yammer-oauth2/commit/036104d420fb34b64115e58f928a1bfbbfa8bde4)
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+
5
+ group :test do
6
+ gem 'json', :platforms => :ruby_18
7
+ gem 'rspec', '>= 2.11'
8
+ gem 'simplecov', :require => false
9
+ gem 'coveralls', :require => false
10
+ gem 'webmock'
11
+ end
12
+
13
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,58 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ yammer-oauth2 (0.1.0)
5
+ oauth2-client (~> 1.1.2)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ addressable (2.3.3)
11
+ bcrypt-ruby (3.0.1)
12
+ colorize (0.5.8)
13
+ coveralls (0.6.0)
14
+ colorize
15
+ multi_json (~> 1.3)
16
+ rest-client
17
+ simplecov (>= 0.7)
18
+ thor
19
+ crack (0.3.2)
20
+ diff-lcs (1.2.1)
21
+ json (1.7.7)
22
+ mime-types (1.21)
23
+ multi_json (1.6.1)
24
+ oauth2-client (1.1.2)
25
+ addressable
26
+ bcrypt-ruby (~> 3.0.0)
27
+ rake (10.0.3)
28
+ rest-client (1.6.7)
29
+ mime-types (>= 1.16)
30
+ rspec (2.13.0)
31
+ rspec-core (~> 2.13.0)
32
+ rspec-expectations (~> 2.13.0)
33
+ rspec-mocks (~> 2.13.0)
34
+ rspec-core (2.13.0)
35
+ rspec-expectations (2.13.0)
36
+ diff-lcs (>= 1.1.3, < 2.0)
37
+ rspec-mocks (2.13.0)
38
+ simplecov (0.7.1)
39
+ multi_json (~> 1.0)
40
+ simplecov-html (~> 0.7.1)
41
+ simplecov-html (0.7.1)
42
+ thor (0.17.0)
43
+ webmock (1.10.1)
44
+ addressable (>= 2.2.7)
45
+ crack (>= 0.3.2)
46
+
47
+ PLATFORMS
48
+ ruby
49
+
50
+ DEPENDENCIES
51
+ bundler (~> 1.0)
52
+ coveralls
53
+ json
54
+ rake
55
+ rspec (>= 2.11)
56
+ simplecov
57
+ webmock
58
+ yammer-oauth2!
data/LICENSE.md ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2013, Kevin Mutyaba
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # OAuth2 Client Ruby
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/yammer-oauth2.png)][gem]
4
+ [![Build Status](https://secure.travis-ci.org/tiabas/yammer-oauth2.png?branch=master)][travis]
5
+ [![Dependency Status](https://gemnasium.com/tiabas/yammer-oauth2.png)][gemnasium]
6
+ [![Coverage Status](https://coveralls.io/repos/tiabas/yammer-oauth2/badge.png?branch=master)][coveralls]
7
+
8
+ [gem]: https://rubygems.org/gems/yammer-oauth2
9
+ [travis]: http://travis-ci.org/tiabas/yammer-oauth2
10
+ [gemnasium]: https://gemnasium.com/tiabas/yammer-oauth2
11
+ [coveralls]: https://coveralls.io/r/tiabas/yammer-oauth2
12
+
13
+ An Ruby wrapper for Yammer's OAuth2 implementation
14
+
15
+ For more about the OAuth2 standard checkout: http://tools.ietf.org/html/rfc6749
16
+
17
+ ## Installation
18
+ ```sh
19
+ gem install yammer-oauth2
20
+ ```
21
+
22
+ ## Resources
23
+ * [View Source on GitHub][code]
24
+ * [Report Issues on GitHub][issues]
25
+ * [Website][website]
26
+
27
+ [website]: http://tiabas.github.com/yammer-oauth2
28
+ [code]: https://github.com/tiabas/yammer-oauth2
29
+ [issues]: https://github.com/tiabas/yammer-oauth2/issues
30
+
31
+ ## Usage Examples
32
+
33
+ ```ruby
34
+
35
+ require 'yammer-oauth2/client'
36
+
37
+ yammer_client = YammmerOAuth2::Client.new('www.yammer.com', 'PRbTcg9qjgKsp4jjpm1pw', 'Xn7kp7Ly0TCY4GtZWkmSsqGEPg10DmMADyjWkf2U')
38
+
39
+ ```
40
+
41
+ ## Authorization Grants
42
+ The client wraps around the creation of any given grant and passing in the parameters defined in the configuration
43
+ file. The supported grants include Authorization Code and Implicit. They are available via the `authorization_code` and `implicit` methods on a client object.
44
+
45
+ ### Authorization Code
46
+
47
+ ```ruby
48
+
49
+ # generate authorization url
50
+ auth_url = yammer_client.webserver_authorization_url
51
+ # => https://www.yammer.com/dialog/oauth/authorize?client_id=PRbTcg9qjgKsp4jjpm1pw&response_type=code
52
+
53
+ # exchange authorization code for access token. we will get back a Net::HTTPResponse
54
+ response = yammer_client.exchange_auth_code_for_token({
55
+ :code => '11a0b0b64db56c30e2ef',
56
+ :redirect_uri => 'https://localhost/callback',
57
+ })
58
+
59
+ response.inspect
60
+ # => #<Net::HTTPOK:0x007ff8bc7c1200>
61
+
62
+ response.body
63
+ # => {
64
+ # "access_token" : "e409f4272fe539166a77c42479de030e7660812a",
65
+ # "token_type" : "bearer"
66
+ # }"
67
+ ```
68
+
69
+ ### Implicit Grant
70
+ ```ruby
71
+ auth_url = client.implicit.authorization_path(:redirect_uri => 'http://localhost/oauth2/callback')
72
+ # => "https://www.yammer.com/dialog/oauth/?client_id=PRbTcg9qjgKsp4jjpm1pw&redirect_uri=http%3A%2F%2Flocalhost%2Foauth%2Fcallback&response_type=token"
73
+ ```
74
+
75
+ # Using a custom Http wrapper
76
+ By default, yammer-oauth2 uses the `oauth2-client` gem's HTTP wrapper `OAuth2::HttpConnection`. However, if you wish to use a different HTTP library, you only
77
+ need to create a wrapper around your favorite library that will respond to the `send_request` method.
78
+
79
+ ```ruby
80
+ class TyphoeusHttpConnection
81
+
82
+ def initialize(site_url, connection_options={})
83
+ # set url and connection options
84
+ @site_url = site_url
85
+ @connection_options = connection_options
86
+ end
87
+
88
+ def base_url(path)
89
+ @site_url + path
90
+ end
91
+
92
+ def send_request(http_method, request_path, options={})
93
+ # options may contain optional arguments like http headers, request parameters etc
94
+ # send http request over the inter-webs
95
+
96
+ params = options[:params] || {}
97
+ headers = options[:headers]|| {}
98
+ method = method.to_sym
99
+ client = Typhoeus
100
+
101
+ case method
102
+ when :get, :delete
103
+ #pass
104
+ when :post, :put
105
+ options[:body] = options.delete(:params) if options[:params]
106
+ else
107
+ raise UnhandledHTTPMethodError.new("Unsupported HTTP method, #{method}")
108
+ end
109
+ response = client.send(http_method, base_url(request_path), params)
110
+ end
111
+ end
112
+
113
+ # now you can initialize the OAuth2 client with you custom client and expect that all requests
114
+ # will be sent using this client
115
+ oauth_client = YammerOAuth2::Client.new('example.com', client_id, client_secret, {
116
+ :connection_client => TyphoeusHttpConnection,
117
+ :connection_options => { :use_ssl => true }
118
+ })
119
+ ```
120
+
121
+ ## Supported Ruby Versions
122
+ This library aims to support and is [tested against][travis] the following Ruby
123
+ version:
124
+
125
+ * Ruby 1.8.7
126
+ * Ruby 1.9.2
127
+ * Ruby 1.9.3
128
+
129
+ This library may inadvertently work (or seem to work) on other Ruby
130
+ implementations, however support will only be provided for the versions listed
131
+ above.
132
+
133
+ ## Copyright
134
+ Copyright (c) 2013 Kevin Mutyaba
135
+ See [LICENSE][license] for details.
136
+ [license]: https://github.com/tiabas/yammer-oauth2/blob/master/LICENSE
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ #Rakefile
2
+ require 'rake'
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec) do |t|
6
+ t.verbose = true
7
+ end
8
+
9
+ desc "Run spec"
10
+ task :default => :spec
11
+ task :test => :spec
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAh0aWFi
3
+ YXNuazEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
4
+ MB4XDTEzMDMwMzA2MjAxNVoXDTE0MDMwMzA2MjAxNVowPzERMA8GA1UEAwwIdGlh
5
+ YmFzbmsxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
6
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMsmVsErcNuwQLKLh9T6
7
+ a57QiK35g9zjpID2pUBn4alMTmIeAXg2bXWLdAzU0swcjmaGBWz5AaZeqTnnBveO
8
+ ZDoH6e811uuRjJMYCkLQxhlghEB0TQkAqOnxlj80TN2jFw+YFWLmSnxR4PBonvpp
9
+ YwWAY0ylqM54FPRhaAIYC5/3Pvx1SYL9/Us0376HEpV0Rty6VXz7tUzv8vFki5ot
10
+ gyfp5ceWiYIZjQ9Uvhm4luJSfXci13UHZ0AeO7E1padWlx3z8hZIvjawueTGRe5p
11
+ BgZlI0+xV2ogvAlu8/NCy0hWUwcpnvRdPyBVDRMli8gXGE9jNv8dBWe67vdjzGSk
12
+ YDUCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFInh
13
+ qvJkuISNqDOcsrBRotZC0qolMB0GA1UdEQQWMBSBEnRpYWJhc25rQGdtYWlsLmNv
14
+ bTAdBgNVHRIEFjAUgRJ0aWFiYXNua0BnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
15
+ ggEBAEGb4gRDulJ9jkf5oRLydfw9UZi6fVWj6aaiJfbbT5NLotpVaWnWdCOO7hy8
16
+ HDPYWN430zLwr0ODOU9XNueKnEkhnBRiYkcQ0JmYddPkL57kp0qlH4g2IqQfQV2W
17
+ 1b7sE410zFHn55B5nihQY3c0MMSL7wq9Dz2EktbIMikf6sG6zfUgYFE4IQGi2RbO
18
+ xa5fnTWt7KB5DD02HnHLTZ9Hl2kxlPyWwyjREwNwEjPoSUJFEBiosvAml8frUDA9
19
+ j6fATg/4fqpgILPVqFIGZOMJDFcJy/oehwwxLu5XMx88WFD9jT1vRj77D7iPLbXd
20
+ rfGs/qCJKgifXd/1am5hlAH5jXU=
21
+ -----END CERTIFICATE-----
@@ -0,0 +1,100 @@
1
+ require 'oauth2'
2
+
3
+ module YammerOAuth2
4
+ class Client < OAuth2::Client
5
+
6
+ def initialize(*args)
7
+ super
8
+ @token_path = '/oauth2/token'
9
+ @authorize_path = '/dialog/oauth/authorize'
10
+ end
11
+ # Generates the Yammer URL that the user will be redirected to in order to
12
+ # authorize your application
13
+ #
14
+ # @see https://developer.yammer.com/api/oauth2.html#client-side
15
+ #
16
+ # @opts [Hash] additional parameters to be include in URL eg. scope, state, etc
17
+ #
18
+ # client = YammerClient.new(config)
19
+ # client.clientside_authorization_url({
20
+ # :redirect_uri => 'https://localhost/oauth/cb',
21
+ # })
22
+ # >> https://www.yammer.com/dialog/oauth/?client_id={client_id}&
23
+ # redirect_uri=http%3A%2F%2Flocalhost%2Foauth%2Fcb&response_type=token
24
+ #
25
+ def clientside_authorization_url(opts={})
26
+ implicit.token_url(opts)
27
+ end
28
+
29
+ # Generates the Yammer URL that the user will be redirected to in order to
30
+ # authorize your application
31
+ #
32
+ # @see https://developer.yammer.com/api/oauth2.html#server-side
33
+ #
34
+ # @opts [Hash] additional parameters to be include in URL eg. scope, state, etc
35
+ #
36
+ # >> client = YammerClient.new(config)
37
+ # >> client.webserver_authorization_url({
38
+ # :redirect_uri => 'https://localhost/oauth/cb',
39
+ # })
40
+ # >> https://www.yammer.com/dialog/oauth/?client_id={client_id}&
41
+ # redirect_uri=http%3A%2F%2Flocalhost%2Foauth%2Fcb&response_type=code
42
+ #
43
+ def webserver_authorization_url(opts={})
44
+ opts[:scope] = normalize_scope(opts[:scope]) if opts[:scope]
45
+ authorization_code.authorization_url(opts)
46
+ end
47
+
48
+ # Generates the Yammer URL that the user will be redirected to in order to
49
+ # authorize your application
50
+ #
51
+ # @see https://developer.yammer.com/api/oauth2.html#server-side
52
+ #
53
+ # @opts [Hash] additional parameters to be include in URL eg. scope, state, etc
54
+ #
55
+ # >> client = YammerClient.new(config)
56
+ # >> client.webserver_authorization_url({
57
+ # :client_secret => @client_secret
58
+ # :code => 'G3Y6jU3a',
59
+ # :redirect_uri => 'https://localhost/oauth/cb',
60
+ # })
61
+ # >> https://www.yammer.com/oauth2/access_token?client_id={client_id}&
62
+ # redirect_uri=http%3A%2F%2Flocalhost%2Foauth%2Fcb&client_secret={client_secret}&
63
+ # grant_type=authorization_code&code=aXW2c6bYz
64
+ #
65
+ def webserver_token_url(opts={})
66
+ opts[:scope] = normalize_scope(opts[:scope]) if opts[:scope]
67
+ opts[:client_secret] = @client_secret
68
+ authorization_code.token_path(opts)
69
+ end
70
+
71
+ # Makes a request to Yammer server that will swap your authorization code for an access
72
+ # token
73
+ #
74
+ # @see https://developer.yammer.com/api/oauth2.html#server-side
75
+ #
76
+ # @opts [Hash] must include authorization code and redirect uri in additon to others
77
+ #
78
+ # >> client = YammerClient.new(config)
79
+ # >> client.exchange_auth_code_for_token({
80
+ # :redirect_uri => 'https://localhost:3000/oauth/v2/callback',
81
+ # :code => 'G3Y6jU3a',
82
+ # })
83
+ #
84
+ # POST /oauth2/access_token HTTP/1.1
85
+ # Host: www.yammer.com
86
+ # Content-Type: application/x-www-form-urlencoded
87
+
88
+ # client_id={client_id}&code=G3Y6jU3a&grant_type=authorization_code&
89
+ # redirect_uri=http%3A%2F%2Flocalhost%2Foauth%2Fcb&client_secret={client_secret}
90
+
91
+ def exchange_auth_code_for_token(opts={})
92
+ unless (opts[:params] && opts[:params][:code])
93
+ raise ArgumentError.new("You must include an authorization code as a parameter")
94
+ end
95
+ opts[:authenticate] ||= :body
96
+ code = opts[:params].delete(:code)
97
+ authorization_code.get_token(code, opts)
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,11 @@
1
+ module YammerOAuth2
2
+ class Version
3
+ MAJOR = 0 unless defined? MAJOR
4
+ MINOR = 1 unless defined? MINOR
5
+ PATCH = 0 unless defined? PATCH
6
+
7
+ def self.to_s
8
+ [MAJOR, MINOR, PATCH].compact.join('.')
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,81 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+
3
+ describe YammerOAuth2::Client do
4
+
5
+ subject do
6
+ YammerOAuth2::Client.new('https://www.yammer.com', 'PRbTcg9qjgKsp4jjpm1pw', 'a2nQpcUm2Dgq1chWdAvbXGTk', {
7
+ :connection_options => {
8
+ :headers => {
9
+ 'User-Agent' => "Yammer OAuth2 Gem #{YammerOAuth2::Version}",
10
+ "Accept" => "application/json"
11
+ }
12
+ }
13
+ })
14
+ end
15
+
16
+ describe "#clientside_authorization_url" do
17
+ it "returns url string for obtaining authorization" do
18
+ params = {
19
+ 'client_id' => 'PRbTcg9qjgKsp4jjpm1pw',
20
+ 'response_type' => 'token'
21
+ }
22
+
23
+ auth_url = subject.clientside_authorization_url
24
+
25
+ parsed_url = Addressable::URI.parse(auth_url)
26
+ expect(parsed_url.path).to eq '/dialog/oauth/authorize'
27
+ expect(parsed_url.query_values).to eq params
28
+ expect(parsed_url.scheme).to eq 'https'
29
+ expect(parsed_url.host).to eq 'www.yammer.com'
30
+ end
31
+ end
32
+
33
+ describe "#webserver_authorization_url" do
34
+ it "returns the authorization url" do
35
+ params = {
36
+ "client_id" => "PRbTcg9qjgKsp4jjpm1pw",
37
+ "redirect_uri" => "https://localhost/callback",
38
+ "response_type" =>"code",
39
+ "state" => "12345"
40
+ }
41
+
42
+ auth_url = subject.webserver_authorization_url(
43
+ :client_id => 'PRbTcg9qjgKsp4jjpm1pw',
44
+ :state => '12345',
45
+ :redirect_uri => 'https://localhost/callback'
46
+ )
47
+
48
+ parsed_url = Addressable::URI.parse(auth_url)
49
+ expect(parsed_url.path).to eq '/dialog/oauth/authorize'
50
+ expect(parsed_url.query_values).to eq params
51
+ expect(parsed_url.scheme).to eq 'https'
52
+ expect(parsed_url.host).to eq 'www.yammer.com'
53
+ end
54
+ end
55
+
56
+ describe "#exchange_auth_code_for_token" do
57
+ it "makes a request to google oauth2 server" do
58
+
59
+ stub_request(:post, "https://www.yammer.com/oauth2/token").with(
60
+ :body => {
61
+ :grant_type => 'authorization_code',
62
+ :code => 'MmOGL795LbIZuJJVnL49Cc',
63
+ :redirect_uri => 'https://localhost',
64
+ :client_id => 'PRbTcg9qjgKsp4jjpm1pw',
65
+ :client_secret => 'a2nQpcUm2Dgq1chWdAvbXGTk'
66
+ },
67
+ :headers => {
68
+ 'Accept' => "application/json",
69
+ 'User-Agent' => "Yammer OAuth2 Gem #{YammerOAuth2::Version}",
70
+ 'Content-Type' => "application/x-www-form-urlencoded"
71
+ }
72
+ )
73
+ response = subject.exchange_auth_code_for_token(
74
+ :params => {
75
+ :code => 'MmOGL795LbIZuJJVnL49Cc',
76
+ :redirect_uri => 'https://localhost'
77
+ }
78
+ )
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,38 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ Coveralls::SimpleCov::Formatter
7
+ ]
8
+ SimpleCov.start
9
+
10
+ require 'yammer-oauth2'
11
+ require 'rspec'
12
+ require 'rspec/autorun'
13
+ require 'webmock/rspec'
14
+
15
+ WebMock.disable_net_connect!(:allow => 'coveralls.io')
16
+
17
+ RSpec.configure do |config|
18
+ config.mock_with :rspec
19
+ config.expect_with :rspec do |c|
20
+ c.syntax = :expect
21
+ end
22
+ end
23
+
24
+ def stub_delete(path)
25
+ stub_request(:delete, 'https://example.com' + path)
26
+ end
27
+
28
+ def stub_get(path)
29
+ stub_request(:get, 'https://example.com' + path)
30
+ end
31
+
32
+ def stub_post(path)
33
+ stub_request(:post, 'https://example.com' + path)
34
+ end
35
+
36
+ def stub_put(path)
37
+ stub_request(:put, 'https://example.com' + path)
38
+ end
@@ -0,0 +1,24 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'yammer-oauth2'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.add_dependency 'oauth2-client', '~> 1.1.2'
7
+ spec.add_development_dependency 'bundler', '~> 1.0'
8
+
9
+ spec.authors = ["Kevin Mutyaba"]
10
+ spec.date = %q{2013-03-03}
11
+ spec.description = "A Yammer OAuth2 wrapper"
12
+ spec.email = %q{tiabasnk@gmail.com}
13
+ spec.files = `git ls-files`.split("\n")
14
+ spec.homepage = 'http://tiabas.github.com/yammer-oauth2/'
15
+ spec.licenses = ['MIT']
16
+ spec.name = 'yammer-oauth2'
17
+ spec.require_paths = ['lib']
18
+ spec.required_rubygems_version = '>= 1.3.6'
19
+ spec.summary = "OAuth2 client wrapper for Yammer"
20
+ spec.version = YammerOAuth2::Version
21
+
22
+ spec.cert_chain = ['certs/tiabas-public.pem']
23
+ spec.signing_key = File.expand_path("~/.gem/certs/private_key.pem")
24
+ end
data.tar.gz.sig ADDED
@@ -0,0 +1,4 @@
1
+ �%����E�����*�[9��#Cװ(PS�.���}�
2
+ O�L��>��(�����A�.qݨ&C���~�0O�T�g��7�_<��Lp|��
3
+ o�C�#vj��wT�h�� ��5��i}׽)&��Q�{��� ��U��o���H�&o���TQ��sx\����;��#��i$�2ֶ!�������Q�ɥ
4
+ ?O�L�މ��OD�dU�n������]y��
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yammer-oauth2
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
+ - !binary |-
13
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURjRENDQWxpZ0F3SUJB
14
+ Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREEvTVJFd0R3WURWUVFEREFoMGFX
15
+ RmkKWVhOdWF6RVZNQk1HQ2dtU0pvbVQ4aXhrQVJrV0JXZHRZV2xzTVJNd0VR
16
+ WUtDWkltaVpQeUxHUUJHUllEWTI5dApNQjRYRFRFek1ETXdNekEyTWpBeE5W
17
+ b1hEVEUwTURNd016QTJNakF4TlZvd1B6RVJNQThHQTFVRUF3d0lkR2xoCllt
18
+ RnpibXN4RlRBVEJnb0praWFKay9Jc1pBRVpGZ1ZuYldGcGJERVRNQkVHQ2dt
19
+ U0pvbVQ4aXhrQVJrV0EyTnYKYlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFB
20
+ RGdnRVBBRENDQVFvQ2dnRUJBTXNtVnNFcmNOdXdRTEtMaDlUNgphNTdRaUsz
21
+ NWc5empwSUQycFVCbjRhbE1UbUllQVhnMmJYV0xkQXpVMHN3Y2ptYUdCV3o1
22
+ QWFaZXFUbm5CdmVPClpEb0g2ZTgxMXV1UmpKTVlDa0xReGhsZ2hFQjBUUWtB
23
+ cU9ueGxqODBUTjJqRncrWUZXTG1TbnhSNFBCb252cHAKWXdXQVkweWxxTTU0
24
+ RlBSaGFBSVlDNS8zUHZ4MVNZTDkvVXMwMzc2SEVwVjBSdHk2Vlh6N3RVenY4
25
+ dkZraTVvdApneWZwNWNlV2lZSVpqUTlVdmhtNGx1SlNmWGNpMTNVSFowQWVP
26
+ N0UxcGFkV2x4M3o4aFpJdmphd3VlVEdSZTVwCkJnWmxJMCt4VjJvZ3ZBbHU4
27
+ L05DeTBoV1V3Y3BudlJkUHlCVkRSTWxpOGdYR0U5ak52OGRCV2U2N3ZkanpH
28
+ U2sKWURVQ0F3RUFBYU4zTUhVd0NRWURWUjBUQkFJd0FEQUxCZ05WSFE4RUJB
29
+ TUNCTEF3SFFZRFZSME9CQllFRkluaApxdkprdUlTTnFET2NzckJSb3RaQzBx
30
+ b2xNQjBHQTFVZEVRUVdNQlNCRW5ScFlXSmhjMjVyUUdkdFlXbHNMbU52CmJU
31
+ QWRCZ05WSFJJRUZqQVVnUkowYVdGaVlYTnVhMEJuYldGcGJDNWpiMjB3RFFZ
32
+ SktvWklodmNOQVFFRkJRQUQKZ2dFQkFFR2I0Z1JEdWxKOWprZjVvUkx5ZGZ3
33
+ OVVaaTZmVldqNmFhaUpmYmJUNU5Mb3RwVmFXbldkQ09PN2h5OApIRFBZV040
34
+ MzB6THdyME9ET1U5WE51ZUtuRWtobkJSaVlrY1EwSm1ZZGRQa0w1N2twMHFs
35
+ SDRnMklxUWZRVjJXCjFiN3NFNDEwekZIbjU1QjVuaWhRWTNjME1NU0w3d3E5
36
+ RHoyRWt0YklNaWtmNnNHNnpmVWdZRkU0SVFHaTJSYk8KeGE1Zm5UV3Q3S0I1
37
+ REQwMkhuSExUWjlIbDJreGxQeVd3eWpSRXdOd0VqUG9TVUpGRUJpb3N2QW1s
38
+ OGZyVURBOQpqNmZBVGcvNGZxcGdJTFBWcUZJR1pPTUpERmNKeS9vZWh3d3hM
39
+ dTVYTXg4OFdGRDlqVDF2Umo3N0Q3aVBMYlhkCnJmR3MvcUNKS2dpZlhkLzFh
40
+ bTVobEFINWpYVT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
41
+ date: 2013-03-03 00:00:00.000000000 Z
42
+ dependencies:
43
+ - !ruby/object:Gem::Dependency
44
+ name: oauth2-client
45
+ requirement: !ruby/object:Gem::Requirement
46
+ none: false
47
+ requirements:
48
+ - - ~>
49
+ - !ruby/object:Gem::Version
50
+ version: 1.1.2
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ version: 1.1.2
59
+ - !ruby/object:Gem::Dependency
60
+ name: bundler
61
+ requirement: !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: '1.0'
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ description: A Yammer OAuth2 wrapper
76
+ email: tiabasnk@gmail.com
77
+ executables: []
78
+ extensions: []
79
+ extra_rdoc_files: []
80
+ files:
81
+ - .gitignore
82
+ - .travis.yml
83
+ - CHANGELOG.md
84
+ - Gemfile
85
+ - Gemfile.lock
86
+ - LICENSE.md
87
+ - README.md
88
+ - Rakefile
89
+ - certs/tiabas-public.pem
90
+ - lib/yammer-oauth2/client.rb
91
+ - lib/yammer-oauth2/version.rb
92
+ - spec/client_spec.rb
93
+ - spec/spec_helper.rb
94
+ - yammer-oauth2.gemspec
95
+ homepage: http://tiabas.github.com/yammer-oauth2/
96
+ licenses:
97
+ - MIT
98
+ post_install_message:
99
+ rdoc_options: []
100
+ require_paths:
101
+ - lib
102
+ required_ruby_version: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: 1.3.6
114
+ requirements: []
115
+ rubyforge_project:
116
+ rubygems_version: 1.8.25
117
+ signing_key:
118
+ specification_version: 3
119
+ summary: OAuth2 client wrapper for Yammer
120
+ test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ �l����X�Ӎ