omniauth-eventbrite 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in omniauth-eventbrite.gemspec
4
+ gemspec
5
+
6
+ gem 'omniauth-oauth2', :git => 'git://github.com/intridea/omniauth-oauth2.git'
data/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # OmniAuth Eventbrite
2
+
3
+ This gem contains the Eventbrite strategy for OmniAuth 1.0.
4
+
5
+ ## Installing
6
+
7
+ Add to your `Gemfile`:
8
+
9
+ ```ruby
10
+ gem 'omniauth-eventbrite', '~> 0.0.1'
11
+ ```
12
+
13
+ Then `bundle install`.
14
+
15
+ ## Basic Usage
16
+
17
+ ```ruby
18
+ use OmniAuth::Builder do
19
+ provider :eventbrite, ENV['EVENTBRITE_CLIENT_ID'], ENV['EVENTBRITE_SECRET']
20
+ end
21
+ ```
22
+
23
+ ## License
24
+
25
+ Copyright (c) 2012 Kruttik Aggarwal
26
+
27
+ Permission is hereby granted, free of charge, to any person obtaining a
28
+ copy of this software and associated documentation files (the
29
+ "Software"), to deal in the Software without restriction, including
30
+ without limitation the rights to use, copy, modify, merge, publish,
31
+ distribute, sublicense, and/or sell copies of the Software, and to
32
+ permit persons to whom the Software is furnished to do so, subject to
33
+ the following conditions:
34
+
35
+ The above copyright notice and this permission notice shall be included
36
+ in all copies or substantial portions of the Software.
37
+
38
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
39
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
40
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
41
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
42
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
43
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
44
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/lib/.DS_Store ADDED
Binary file
@@ -0,0 +1 @@
1
+ require "omniauth/eventbrite"
@@ -0,0 +1,2 @@
1
+ require 'omniauth/eventbrite/version'
2
+ require 'omniauth/strategies/eventbrite'
@@ -0,0 +1,5 @@
1
+ module Omniauth
2
+ module Eventbrite
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,55 @@
1
+ require 'omniauth/strategies/oauth2'
2
+
3
+ module OmniAuth
4
+ module Strategies
5
+ class Eventbrite < OmniAuth::Strategies::OAuth2
6
+ DEFAULT_RESPONSE_TYPE = 'code'
7
+ DEFAULT_GRANT = 'authorization_code'
8
+
9
+ option :name, "eventbrite"
10
+
11
+ option :client_options, {
12
+ :site => "https://www.eventbrite.com",
13
+ :authorize_url => '/oauth/authorize',
14
+ :token_url => '/oauth/token'
15
+ }
16
+ uid { raw_info['id'] }
17
+
18
+ def authorize_params
19
+ super.tap do |params|
20
+ params[:response_type] ||= DEFAULT_RESPONSE_TYPE
21
+ params[:client_id] = client.id
22
+ end
23
+ end
24
+
25
+ def token_params
26
+ super.tap do |params|
27
+ params[:grant_type] ||= DEFAULT_GRANT
28
+ params[:client_id] = client.id
29
+ params[:client_secret] = client.secret
30
+ end
31
+ end
32
+
33
+ info do
34
+ prune!({
35
+ 'email' => raw_info['email'],
36
+ 'name' => raw_info['first_name'] + " " + raw_info['last_name'],
37
+ 'first_name' => raw_info['first_name'],
38
+ 'last_name' => raw_info['last_name'],
39
+ })
40
+ end
41
+
42
+ extra do
43
+ prune!({
44
+ 'raw_info' => raw_info
45
+ })
46
+ end
47
+
48
+ def raw_info
49
+ @raw_info ||= access_token.get('/json/user_get')['user']
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ OmniAuth.config.add_camelization 'eventbrite', 'Eventbrite'
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "omniauth/eventbrite/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "omniauth-eventbrite"
7
+ s.version = Omniauth::Eventbrite::VERSION
8
+ s.authors = ["Kruttik Aggarwal"]
9
+ s.email = ["kruttikagarwal@gmail.com"]
10
+ s.homepage = "https://github.com/k504866430/omniauth-eventbrite"
11
+ s.summary = "EventBrite strategy for Omniauth with OAuth 2.0"
12
+ s.description = "Eventbrite strategy for OmniAuth"
13
+
14
+ s.rubyforge_project = "omniauth-eventbrite"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_runtime_dependency 'omniauth-oauth2', '~> 1.0.0'
22
+ s.add_development_dependency 'rspec', '~> 2.7.0'
23
+ s.add_development_dependency 'rake'
24
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+ require 'omniauth-eventbrite'
3
+
4
+ describe OmniAuth::Strategies::Eventbrite do
5
+ subject do
6
+ OmniAuth::Strategies::Eventbrite.new(nil, @options || {})
7
+ end
8
+
9
+ it_should_behave_like 'an oauth2 strategy'
10
+
11
+ describe '#client' do
12
+ it 'should have the correct Eventbrite site' do
13
+ subject.client.site.should eq("https://www.eventbrite.com")
14
+ end
15
+
16
+ it 'should have the correct authorization url' do
17
+ subject.client.options[:authorize_url].should eq("/oauth/authorize")
18
+ end
19
+
20
+ it 'should have the correct token url' do
21
+ subject.client.options[:token_url].should eq('/oauth/token')
22
+ end
23
+ end
24
+
25
+ describe '#callback_path' do
26
+ it 'should have the correct callback path' do
27
+ subject.callback_path.should eq('/auth/eventbrite/callback')
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,6 @@
1
+ require 'bundler/setup'
2
+ require 'rspec'
3
+ Dir[File.expand_path('../support/**/*', __FILE__)].each { |f| require f }
4
+
5
+ RSpec.configure do |config|
6
+ end
@@ -0,0 +1,37 @@
1
+ # NOTE it would be useful if this lived in omniauth-oauth2 eventually
2
+ shared_examples 'an oauth2 strategy' do
3
+ describe '#client' do
4
+ it 'should be initialized with symbolized client_options' do
5
+ @options = { :client_options => { 'authorize_url' => 'https://example.com' } }
6
+ subject.client.options[:authorize_url].should == 'https://example.com'
7
+ end
8
+ end
9
+
10
+ describe '#authorize_params' do
11
+ it 'should include any authorize params passed in the :authorize_params option' do
12
+ @options = { :authorize_params => { :foo => 'bar', :baz => 'zip' } }
13
+ subject.authorize_params['foo'].should eq('bar')
14
+ subject.authorize_params['baz'].should eq('zip')
15
+ end
16
+
17
+ it 'should include top-level options that are marked as :authorize_options' do
18
+ @options = { :authorize_options => [:scope, :foo], :scope => 'bar', :foo => 'baz' }
19
+ subject.authorize_params['scope'].should eq('bar')
20
+ subject.authorize_params['foo'].should eq('baz')
21
+ end
22
+ end
23
+
24
+ describe '#token_params' do
25
+ it 'should include any authorize params passed in the :authorize_params option' do
26
+ @options = { :token_params => { :foo => 'bar', :baz => 'zip' } }
27
+ subject.token_params['foo'].should eq('bar')
28
+ subject.token_params['baz'].should eq('zip')
29
+ end
30
+
31
+ it 'should include top-level options that are marked as :authorize_options' do
32
+ @options = { :token_options => [:scope, :foo], :scope => 'bar', :foo => 'baz' }
33
+ subject.token_params['scope'].should eq('bar')
34
+ subject.token_params['foo'].should eq('baz')
35
+ end
36
+ end
37
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omniauth-eventbrite
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kruttik Aggarwal
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-16 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: omniauth-oauth2
16
+ requirement: &70315423404860 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70315423404860
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70315423403920 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 2.7.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70315423403920
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: &70315423403540 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70315423403540
47
+ description: Eventbrite strategy for OmniAuth
48
+ email:
49
+ - kruttikagarwal@gmail.com
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - Gemfile
56
+ - README.md
57
+ - Rakefile
58
+ - lib/.DS_Store
59
+ - lib/omniauth-eventbrite.rb
60
+ - lib/omniauth/eventbrite.rb
61
+ - lib/omniauth/eventbrite/version.rb
62
+ - lib/omniauth/strategies/eventbrite.rb
63
+ - omniauth-eventbrite.gemspec
64
+ - spec/omniauth/strategies/eventbrite_spec.rb
65
+ - spec/spec_helper.rb
66
+ - spec/support/shared_examples.rb
67
+ homepage: https://github.com/k504866430/omniauth-eventbrite
68
+ licenses: []
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ requirements: []
86
+ rubyforge_project: omniauth-eventbrite
87
+ rubygems_version: 1.8.10
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: EventBrite strategy for Omniauth with OAuth 2.0
91
+ test_files:
92
+ - spec/omniauth/strategies/eventbrite_spec.rb
93
+ - spec/spec_helper.rb
94
+ - spec/support/shared_examples.rb