omniauth-eventbrite 0.0.5 → 0.0.6

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 22782f3f0f7a6eaea968835f4d6a74fca2596d32
4
+ data.tar.gz: 46961778499be45bbb59ed953ef657f854758736
5
+ SHA512:
6
+ metadata.gz: d5839bebf6e58e2cebd2660a002f42d85c7184111194d86ffb54e69597d9e64e181f90cd96948567d9a1944de2b4fe2ecb03bd3d6e4374674cc073b50a63d817
7
+ data.tar.gz: 0db9cb3cf09d7c7250f8b10ad51e78c9c16e759a3c2215d79c01a0f16b0f28f4f1918e660446583bea960976b748cb93fa90d1121c1fc50077e935d8688fdbfc
@@ -0,0 +1,58 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ This project adheres to [Semantic Versioning 2.0.0][semver].
6
+
7
+ ## [Unreleased][unreleased]
8
+
9
+ ### Changed
10
+
11
+ - Nothing yet.
12
+
13
+ ## [0.0.6] - 2014-05-02
14
+
15
+ ### Changed
16
+
17
+ - *Breaking*: Switched the identity retrieval to the newer API v3 endpoint.
18
+ This will cause any retrieved user_id to change to the v3 standard, which
19
+ is incompatible with the v1 API. Eventbrite is deprecating API v1 within
20
+ the next two months, so if this is breaks your code you should update to
21
+ the newer API.
22
+ - Relaxed omniauth-oauth2 dependency to ~> 1.0 to ease use with other oauth2
23
+ providers.
24
+ - Added support for a "ref" parameter for the Eventbrite Referral Program.
25
+
26
+ ## [0.0.5] - 2013-12-17
27
+
28
+ ### Changed
29
+
30
+ - Bugfix: Ensure raw_info at least returns an empty hash.
31
+
32
+ ## [0.0.4] - 2012-09-20
33
+
34
+ ### Changed
35
+
36
+ - user_id is now set as a string instead of an integer to match other
37
+ providers.
38
+ - Bugfix: Improve name handling for users with missing first or last names.
39
+
40
+ ## [0.0.3] - 2012-02-16
41
+
42
+ ### Changed
43
+
44
+ - Bugfix: user_id was being pulled from the wrong attribute.
45
+
46
+ ## [0.0.2] - 2012-02-16
47
+
48
+ ### Changed
49
+
50
+ - Bugfix: Raw hashes were not being pruned properly.
51
+
52
+ [semver]: http://semver.org/spec/v2.0.0.html
53
+ [unreleased]: https://github.com/k504866430/omniauth-eventbrite/compare/v0.0.6...HEAD
54
+ [0.0.6]: https://github.com/k504866430/omniauth-eventbrite/compare/v0.0.5...v0.0.6
55
+ [0.0.5]: https://github.com/k504866430/omniauth-eventbrite/compare/v0.0.4...v0.0.5
56
+ [0.0.4]: https://github.com/k504866430/omniauth-eventbrite/compare/v0.0.3...v0.0.4
57
+ [0.0.3]: https://github.com/k504866430/omniauth-eventbrite/compare/v0.0.2...v0.0.3
58
+ [0.0.2]: https://github.com/k504866430/omniauth-eventbrite/compare/v0.0.1...v0.0.2
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2012-2015 Kruttik Aggarwal
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # OmniAuth Eventbrite
2
2
 
3
- This gem contains the Eventbrite strategy for OmniAuth 1.0.
3
+ This gem contains the Eventbrite strategy for OmniAuth 2.0.
4
+
5
+ *Notice*: Versions 0.0.1 through 0.0.5 use Eventbrite API v1, which is due to
6
+ be deprecated within two months of 2015-04-30. Versions after that will use
7
+ Eventbrite API v3. This will affect the user_id that you get back from the API
8
+ but your auth_token should remain the same.
4
9
 
5
10
  ## Installing
6
11
 
@@ -22,6 +27,22 @@ end
22
27
 
23
28
  You can find your client secret on the same page where your application API key is.
24
29
 
30
+ ## Referral Program Code
31
+
32
+ If you participate in the [Eventbrite Referral Program][referral], you can also
33
+ include your referral code as a parameter in all of your OAuth2 authentications
34
+ by including it in the builder block:
35
+
36
+ ```ruby
37
+ use OmniAuth::Builder do
38
+ provider :eventbrite, ENV['EVENTBRITE_CLIENT_ID'],
39
+ ENV['EVENTBRITE_CLIENT_SECRET'],
40
+ ref: 'EVENTBRITE_REFERRAL_CODE'
41
+ end
42
+ ```
43
+
44
+ [referral]: https://www.eventbrite.com/referral-program/
45
+
25
46
  ## License
26
47
 
27
48
  Copyright (c) 2012 Kruttik Aggarwal
@@ -1 +1 @@
1
- require "omniauth/eventbrite"
1
+ require 'omniauth/eventbrite'
@@ -1,2 +1,2 @@
1
1
  require 'omniauth/eventbrite/version'
2
- require 'omniauth/strategies/eventbrite'
2
+ require 'omniauth/strategies/eventbrite'
@@ -1,5 +1,5 @@
1
1
  module Omniauth
2
2
  module Eventbrite
3
- VERSION = "0.0.5"
3
+ VERSION = '0.0.6'
4
4
  end
5
5
  end
@@ -5,16 +5,16 @@ module OmniAuth
5
5
  class Eventbrite < OmniAuth::Strategies::OAuth2
6
6
  DEFAULT_RESPONSE_TYPE = 'code'
7
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['user_id'].to_s }
17
-
8
+ INFO_URL = 'https://www.eventbriteapi.com/v3/users/me/'.freeze
9
+
10
+ option :name, 'eventbrite'
11
+ option :authorize_options, [:ref]
12
+ option :client_options, site: 'https://www.eventbrite.com',
13
+ authorize_url: '/oauth/authorize',
14
+ token_url: '/oauth/token'
15
+
16
+ uid { raw_info['id'].to_s }
17
+
18
18
  def authorize_params
19
19
  super.tap do |params|
20
20
  params[:response_type] ||= DEFAULT_RESPONSE_TYPE
@@ -29,34 +29,29 @@ module OmniAuth
29
29
  params[:client_secret] = client.secret
30
30
  end
31
31
  end
32
-
32
+
33
33
  info do
34
- prune!({
35
- 'email' => raw_info['email'],
36
- 'name' => construct_full_name(raw_info['first_name'], raw_info['last_name']),
37
- 'first_name' => raw_info['first_name'],
38
- 'last_name' => raw_info['last_name'],
39
- })
34
+ prune!('email' => retrieved_email,
35
+ 'name' => raw_info['name'],
36
+ 'first_name' => raw_info['first_name'],
37
+ 'last_name' => raw_info['last_name'])
40
38
  end
41
-
39
+
42
40
  extra do
43
- prune!({
44
- 'raw_info' => raw_info
45
- })
41
+ prune!('raw_info' => raw_info)
46
42
  end
47
43
 
48
44
  def raw_info
49
- @raw_info ||= access_token.get('/json/user_get').parsed['user'] || {}
45
+ @raw_info ||= access_token.get(INFO_URL).parsed || {}
50
46
  end
51
-
47
+
52
48
  private
53
49
 
54
- def construct_full_name(first_name, last_name)
55
- if first_name and last_name
56
- "#{first_name} #{last_name}"
57
- else
58
- first_name || last_name || nil
59
- end
50
+ def full_name
51
+ first_name = raw_info['first_name'] || ''
52
+ last_name = raw_info['last_name'] || ''
53
+
54
+ "#{first_name} #{last_name}".strip || nil
60
55
  end
61
56
 
62
57
  def prune!(hash)
@@ -65,6 +60,12 @@ module OmniAuth
65
60
  value.nil? || (value.respond_to?(:empty?) && value.empty?)
66
61
  end
67
62
  end
63
+
64
+ def retrieved_email
65
+ primary = raw_info['emails'].detect { |e| e['primary'] }
66
+ primary ||= raw_info['emails'].first
67
+ primary['email']
68
+ end
68
69
  end
69
70
  end
70
71
  end
@@ -1,24 +1,22 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "omniauth/eventbrite/version"
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'omniauth/eventbrite/version'
4
5
 
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"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'omniauth-eventbrite'
8
+ spec.version = Omniauth::Eventbrite::VERSION
9
+ spec.authors = ['Kruttik Aggarwal']
10
+ spec.email = ['kruttikagarwal@gmail.com']
11
+ spec.homepage = 'https://github.com/k504866430/omniauth-eventbrite'
12
+ spec.summary = 'Eventbrite OAuth2 strategy for OmniAuth'
13
+ spec.description = spec.summary
14
+ spec.license = 'MIT'
13
15
 
14
- s.rubyforge_project = "omniauth-eventbrite"
16
+ spec.files = %w(CHANGELOG.md LICENSE.md README.md omniauth-eventbrite.gemspec)
17
+ spec.files += Dir['lib/**/*.rb']
18
+ spec.require_paths = ['lib']
15
19
 
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.1.0'
22
- s.add_development_dependency 'rspec', '~> 2.7.0'
23
- s.add_development_dependency 'rake'
20
+ spec.add_dependency 'omniauth-oauth2', '~> 1.0'
21
+ spec.add_development_dependency 'bundler', '~> 1.0'
24
22
  end
metadata CHANGED
@@ -1,109 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-eventbrite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
5
- prerelease:
4
+ version: 0.0.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Kruttik Aggarwal
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-17 00:00:00.000000000 Z
11
+ date: 2015-05-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: omniauth-oauth2
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 1.1.0
19
+ version: '1.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 1.1.0
26
+ version: '1.0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: rspec
28
+ name: bundler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: 2.7.0
33
+ version: '1.0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: 2.7.0
46
- - !ruby/object:Gem::Dependency
47
- name: rake
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- description: Eventbrite strategy for OmniAuth
40
+ version: '1.0'
41
+ description: Eventbrite OAuth2 strategy for OmniAuth
63
42
  email:
64
43
  - kruttikagarwal@gmail.com
65
44
  executables: []
66
45
  extensions: []
67
46
  extra_rdoc_files: []
68
47
  files:
69
- - .gitignore
70
- - Gemfile
48
+ - CHANGELOG.md
49
+ - LICENSE.md
71
50
  - README.md
72
- - Rakefile
73
- - lib/.DS_Store
74
51
  - lib/omniauth-eventbrite.rb
75
52
  - lib/omniauth/eventbrite.rb
76
53
  - lib/omniauth/eventbrite/version.rb
77
54
  - lib/omniauth/strategies/eventbrite.rb
78
55
  - omniauth-eventbrite.gemspec
79
- - spec/omniauth/strategies/eventbrite_spec.rb
80
- - spec/spec_helper.rb
81
- - spec/support/shared_examples.rb
82
56
  homepage: https://github.com/k504866430/omniauth-eventbrite
83
- licenses: []
57
+ licenses:
58
+ - MIT
59
+ metadata: {}
84
60
  post_install_message:
85
61
  rdoc_options: []
86
62
  require_paths:
87
63
  - lib
88
64
  required_ruby_version: !ruby/object:Gem::Requirement
89
- none: false
90
65
  requirements:
91
- - - ! '>='
66
+ - - ">="
92
67
  - !ruby/object:Gem::Version
93
68
  version: '0'
94
69
  required_rubygems_version: !ruby/object:Gem::Requirement
95
- none: false
96
70
  requirements:
97
- - - ! '>='
71
+ - - ">="
98
72
  - !ruby/object:Gem::Version
99
73
  version: '0'
100
74
  requirements: []
101
- rubyforge_project: omniauth-eventbrite
102
- rubygems_version: 1.8.24
75
+ rubyforge_project:
76
+ rubygems_version: 2.4.5
103
77
  signing_key:
104
- specification_version: 3
105
- summary: EventBrite strategy for Omniauth with OAuth 2.0
106
- test_files:
107
- - spec/omniauth/strategies/eventbrite_spec.rb
108
- - spec/spec_helper.rb
109
- - spec/support/shared_examples.rb
78
+ specification_version: 4
79
+ summary: Eventbrite OAuth2 strategy for OmniAuth
80
+ test_files: []
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- *.gem
2
- .bundle
3
- Gemfile.lock
4
- pkg/*
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in omniauth-eventbrite.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require 'rspec/core/rake_task'
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec
Binary file
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
- require 'omniauth-eventbrite'
3
-
4
- OmniAuth.config.test_mode = true
5
-
6
- describe OmniAuth::Strategies::Eventbrite do
7
- subject do
8
- OmniAuth::Strategies::Eventbrite.new(nil, @options || {})
9
- end
10
-
11
- it_should_behave_like 'an oauth2 strategy'
12
-
13
- describe '#client' do
14
- it 'should have the correct Eventbrite site' do
15
- subject.client.site.should eq("https://www.eventbrite.com")
16
- end
17
-
18
- it 'should have the correct authorization url' do
19
- subject.client.options[:authorize_url].should eq("/oauth/authorize")
20
- end
21
-
22
- it 'should have the correct token url' do
23
- subject.client.options[:token_url].should eq('/oauth/token')
24
- end
25
- end
26
-
27
- describe '#callback_path' do
28
- it 'should have the correct callback path' do
29
- subject.callback_path.should eq('/auth/eventbrite/callback')
30
- end
31
- end
32
- end
@@ -1,6 +0,0 @@
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
@@ -1,37 +0,0 @@
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