omniauth-launchpad 0.0.1 → 0.1.0
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.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/.travis.yml +14 -0
- data/README.md +9 -3
- data/Rakefile +3 -0
- data/lib/omniauth/launchpad/version.rb +1 -1
- data/lib/omniauth/strategies/launchpad.rb +19 -21
- data/omniauth-launchpad.gemspec +2 -4
- data/spec/omniauth/strategies/launchpad_spec.rb +137 -0
- data/spec/spec_helper.rb +15 -0
- metadata +15 -12
- data/example/Gemfile +0 -4
- data/example/Gemfile.lock +0 -36
- data/example/config.ru +0 -43
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8d070daeb3e1490ec25e3392882228c6688e3746
         | 
| 4 | 
            +
              data.tar.gz: 152c9448d0a5180956e052fea005c739aaae31b6
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f21c0175ec7f1896cceab351a18e530efda254787949f6f04fd43996f05fb9552ab38bb3104e9d6b49d1c30d53118c55e32c56563204d27d0cd759f2a0ee9a71
         | 
| 7 | 
            +
              data.tar.gz: e38f53fe5cb0224ccb6972c4c4e1987b1104d7da786f09755a629b82c14c2db7d35399daec006dc3a2842109104cecf51625dbdf127f1b1d189cd2c5d8fc6125
         | 
    
        data/.rspec
    ADDED
    
    
    
        data/.travis.yml
    ADDED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            # Omniauth::Launchpad
         | 
| 2 | 
            +
            Build status: [](https://travis-ci.org/joaopapereira/omniauth-launchpad)
         | 
| 2 3 |  | 
| 3 | 
            -
             | 
| 4 | 
            +
            This gem allows the user to login with the launchpad account
         | 
| 4 5 |  | 
| 5 6 | 
             
            ## Installation
         | 
| 6 7 |  | 
| @@ -20,11 +21,16 @@ Or install it yourself as: | |
| 20 21 |  | 
| 21 22 | 
             
            ## Usage
         | 
| 22 23 |  | 
| 23 | 
            -
             | 
| 24 | 
            +
            Add the middleware to a Rails app in config/initializers/omniauth.rb:
         | 
| 25 | 
            +
            ```
         | 
| 26 | 
            +
            Rails.application.config.middleware.use OmniAuth::Builder do
         | 
| 27 | 
            +
              provider :launchpad, CONSUMER_KEY
         | 
| 28 | 
            +
            end
         | 
| 29 | 
            +
            ```
         | 
| 24 30 |  | 
| 25 31 | 
             
            ## Contributing
         | 
| 26 32 |  | 
| 27 | 
            -
            1. Fork it ( https://github.com/ | 
| 33 | 
            +
            1. Fork it ( https://github.com/joaopapereira/omniauth-launchpad/fork )
         | 
| 28 34 | 
             
            2. Create your feature branch (`git checkout -b my-new-feature`)
         | 
| 29 35 | 
             
            3. Commit your changes (`git commit -am 'Add some feature'`)
         | 
| 30 36 | 
             
            4. Push to the branch (`git push origin my-new-feature`)
         | 
    
        data/Rakefile
    CHANGED
    
    
| @@ -24,7 +24,6 @@ module OmniAuth | |
| 24 24 | 
             
                  }
         | 
| 25 25 | 
             
                  def initialize(app, consumer_key="babun", options={}, &block)
         | 
| 26 26 | 
             
                    options[:oauth_consumer_key] = consumer_key
         | 
| 27 | 
            -
                    options[:oauth_consumer_secret] = consumer_secret
         | 
| 28 27 | 
             
                    super(app, consumer_key, nil, options, &block)
         | 
| 29 28 | 
             
                  end
         | 
| 30 29 |  | 
| @@ -52,28 +51,27 @@ module OmniAuth | |
| 52 51 | 
             
                    { raw_user_info: raw_user_info }
         | 
| 53 52 | 
             
                  end
         | 
| 54 53 | 
             
                  def request_phase
         | 
| 55 | 
            -
                    puts "Request info: #{options.request_param}"
         | 
| 56 54 | 
             
                      request_options = {:oauth_consumer_key => options[:oauth_consumer_key], :realm => "https://api.launchpad.net/"}
         | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
                        end
         | 
| 69 | 
            -
                        @request_token = request_token
         | 
| 70 | 
            -
                        r.finish
         | 
| 71 | 
            -
                      
         | 
| 72 | 
            -
                        rescue ::Timeout::Error => e
         | 
| 73 | 
            -
                          fail!(:timeout, e)
         | 
| 74 | 
            -
                        rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e
         | 
| 75 | 
            -
                          fail!(:service_unavailable, e)
         | 
| 55 | 
            +
                      request_options.merge!(options[:authorize_params])
         | 
| 56 | 
            +
                    
         | 
| 57 | 
            +
                      request_token = consumer.get_request_token({:oauth_callback => callback_url}, request_options)
         | 
| 58 | 
            +
                      session['oauth'] ||= {}
         | 
| 59 | 
            +
                      session['oauth'][name.to_s] = {'callback_confirmed' => request_token.callback_confirmed?, 'request_token' => request_token.token, 'request_secret' => request_token.secret}
         | 
| 60 | 
            +
                      r = Rack::Response.new
         | 
| 61 | 
            +
                    
         | 
| 62 | 
            +
                      if request_token.callback_confirmed?
         | 
| 63 | 
            +
                        r.redirect(request_token.authorize_url)
         | 
| 64 | 
            +
                      else
         | 
| 65 | 
            +
                        r.redirect(request_token.authorize_url(:oauth_callback => callback_url))
         | 
| 76 66 | 
             
                      end
         | 
| 67 | 
            +
                      @request_token = request_token
         | 
| 68 | 
            +
                      r.finish
         | 
| 69 | 
            +
                    
         | 
| 70 | 
            +
                      rescue ::Timeout::Error => e
         | 
| 71 | 
            +
                        fail!(:timeout, e)
         | 
| 72 | 
            +
                      rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e
         | 
| 73 | 
            +
                        fail!(:service_unavailable, e)
         | 
| 74 | 
            +
                  end
         | 
| 77 75 | 
             
                end
         | 
| 78 76 | 
             
              end
         | 
| 79 77 | 
             
            end
         | 
    
        data/omniauth-launchpad.gemspec
    CHANGED
    
    | @@ -17,8 +17,9 @@ Gem::Specification.new do |spec| | |
| 17 17 | 
             
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         | 
| 18 18 | 
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 19 19 | 
             
              spec.require_paths = ["lib"]
         | 
| 20 | 
            +
              spec.required_ruby_version = '>= 1.9.2'
         | 
| 20 21 |  | 
| 21 | 
            -
              spec.add_development_dependency "bundler" | 
| 22 | 
            +
              spec.add_development_dependency "bundler"
         | 
| 22 23 | 
             
              spec.add_development_dependency "rake", "~> 10.0"
         | 
| 23 24 | 
             
              spec.add_development_dependency 'rspec'
         | 
| 24 25 | 
             
              spec.add_development_dependency 'webmock'
         | 
| @@ -27,8 +28,5 @@ Gem::Specification.new do |spec| | |
| 27 28 |  | 
| 28 29 | 
             
              spec.add_runtime_dependency 'omniauth', '>= 1.1.1'
         | 
| 29 30 | 
             
              spec.add_runtime_dependency 'omniauth-oauth'
         | 
| 30 | 
            -
              #spec.add_runtime_dependency 'faraday'
         | 
| 31 | 
            -
              #spec.add_runtime_dependency 'faraday_middleware'
         | 
| 32 | 
            -
              #spec.add_runtime_dependency 'simple_oauth'
         | 
| 33 31 | 
             
              spec.add_runtime_dependency 'multi_json', '~> 1.3'
         | 
| 34 32 | 
             
            end
         | 
| @@ -0,0 +1,137 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
            require 'omniauth-launchpad'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            describe OmniAuth::Strategies::Launchpad do
         | 
| 5 | 
            +
              def app
         | 
| 6 | 
            +
                Rack::Builder.new {
         | 
| 7 | 
            +
                  use OmniAuth::Test::PhonySession
         | 
| 8 | 
            +
                  use OmniAuth::Builder do
         | 
| 9 | 
            +
                    provider :launchpad, "testing-launchpad"
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
                  run lambda { |env| [404, {'Content-Type' => 'text/plain'}, [env.key?('omniauth.auth').to_s]] }
         | 
| 12 | 
            +
                }.to_app
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
                def strategy
         | 
| 15 | 
            +
                # return the parameters to a Rack::Builder map call:
         | 
| 16 | 
            +
                [OmniAuth::Strategies::Launchpad.new, 'bamm']
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
              def session
         | 
| 19 | 
            +
                last_request.env['rack.session']
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              before do
         | 
| 23 | 
            +
                stub_request(:post, 'https://launchpad.net/+request-token').
         | 
| 24 | 
            +
                  to_return(:body => "oauth_token=yourtoken&oauth_token_secret=yoursecret&oauth_callback_confirmed=true")
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
              it 'can be camel-cased' do
         | 
| 27 | 
            +
                OmniAuth::Utils.camelize( 'launchpad' ).should == 'Launchpad'
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              describe '/auth/launchpad' do
         | 
| 31 | 
            +
                context 'successful' do
         | 
| 32 | 
            +
                  before do
         | 
| 33 | 
            +
                    get '/auth/launchpad'
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  it 'should redirect to authorize_url' do
         | 
| 37 | 
            +
                    last_response.should be_redirect
         | 
| 38 | 
            +
                    last_response.headers['Location'].should == 'https://launchpad.net/+authorize-token?oauth_token=yourtoken'
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
             | 
| 42 | 
            +
                  it 'should set appropriate session variables' do
         | 
| 43 | 
            +
                    session['oauth'].should == {"launchpad"=>{"callback_confirmed"=>true, "request_token"=>"yourtoken", "request_secret"=>"yoursecret"}}
         | 
| 44 | 
            +
                  end
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                context 'unsuccessful' do
         | 
| 48 | 
            +
                  before do
         | 
| 49 | 
            +
                    stub_request(:post, 'https://launchpad.net/+request-token').
         | 
| 50 | 
            +
                       to_raise(::Net::HTTPFatalError.new(%Q{502 "Bad Gateway"}, nil))
         | 
| 51 | 
            +
                    get '/auth/launchpad'
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  it 'should call fail! with :service_unavailable' do
         | 
| 55 | 
            +
                    last_request.env['omniauth.error'].should be_kind_of(::Net::HTTPFatalError)
         | 
| 56 | 
            +
                    last_request.env['omniauth.error.type'] = :service_unavailable
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                  context "SSL failure" do
         | 
| 60 | 
            +
                    before do
         | 
| 61 | 
            +
                      stub_request(:post, 'https://launchpad.net/+request-token').
         | 
| 62 | 
            +
                         to_raise(::OpenSSL::SSL::SSLError.new("SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed"))
         | 
| 63 | 
            +
                      get '/auth/launchpad'
         | 
| 64 | 
            +
                    end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                    it 'should call fail! with :service_unavailable' do
         | 
| 67 | 
            +
                      last_request.env['omniauth.error'].should be_kind_of(::OpenSSL::SSL::SSLError)
         | 
| 68 | 
            +
                      last_request.env['omniauth.error.type'] = :service_unavailable
         | 
| 69 | 
            +
                    end
         | 
| 70 | 
            +
                  end
         | 
| 71 | 
            +
                end
         | 
| 72 | 
            +
              end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
              describe '/auth/launchpad/callback' do
         | 
| 75 | 
            +
                before do
         | 
| 76 | 
            +
                  body =<<BODY
         | 
| 77 | 
            +
            oauth_token=PsK9cpbll1KwehhRDckr&oauth_token_secret=M2hsnmsfEIAjS3bTWg6t8X2GKhlm152PRDjLLmtQdr9C8KFZWPl9c8QbLfWddE0qpz5L56pMKKFKEfv1&lp.context=None
         | 
| 78 | 
            +
            BODY
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                  stub_request(:post, 'https://launchpad.net/+request-token').
         | 
| 81 | 
            +
                    to_return(:body => "oauth_token=yourtoken&oauth_token_secret=yoursecret")
         | 
| 82 | 
            +
                  stub_request(:post, "https://launchpad.net/+access-token").
         | 
| 83 | 
            +
                     with(:body =>  hash_including({"oauth_consumer_key"=>"testing-launchpad", 
         | 
| 84 | 
            +
                                                    "oauth_signature"=>"&yoursecret", 
         | 
| 85 | 
            +
                                                    "oauth_signature_method"=>"PLAINTEXT", 
         | 
| 86 | 
            +
                                                    "oauth_token"=>"yourtoken", 
         | 
| 87 | 
            +
                                                    "oauth_version"=>"1.0"})).
         | 
| 88 | 
            +
                     to_return(:status => 200, :body => body, :headers => {})
         | 
| 89 | 
            +
                  stub_request(:get, "https://api.launchpad.net/devel/people/+me").
         | 
| 90 | 
            +
                    to_return(:status => 302, :headers => {"location" =>"https://api.launchpad.net/devel/~theguy"})
         | 
| 91 | 
            +
                  stub_request(:get, "https://api.launchpad.net/devel/~theguy").
         | 
| 92 | 
            +
                    to_return(:status => 200, :body => "bamm")
         | 
| 93 | 
            +
                    
         | 
| 94 | 
            +
                   get '/auth/launchpad/callback', {}, {'rack.session' => {'oauth' => {"launchpad" => {'callback_confirmed' => true, 'request_token' => 'yourtoken', 'request_secret' => 'yoursecret'}}}}
         | 
| 95 | 
            +
                end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
             | 
| 98 | 
            +
                context "bad gateway (or any 5xx) for access_token" do
         | 
| 99 | 
            +
                  before do
         | 
| 100 | 
            +
                    stub_request(:post, 'https://launchpad.net/+access-token').
         | 
| 101 | 
            +
                       to_raise(::Net::HTTPFatalError.new(%Q{502 "Bad Gateway"}, nil))
         | 
| 102 | 
            +
                    get '/auth/launchpad/callback', {:oauth_verifier => 'dudeman'}, {'rack.session' => {'oauth' => {"launchpad" => {'callback_confirmed' => true, 'request_token' => 'yourtoken', 'request_secret' => 'yoursecret'}}}}
         | 
| 103 | 
            +
                  end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                  it 'should call fail! with :service_unavailable' do
         | 
| 106 | 
            +
                    last_request.env['omniauth.error'].should be_kind_of(::Net::HTTPFatalError)
         | 
| 107 | 
            +
                    last_request.env['omniauth.error.type'] = :service_unavailable
         | 
| 108 | 
            +
                  end
         | 
| 109 | 
            +
                end
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                context "SSL failure" do
         | 
| 112 | 
            +
                  before do
         | 
| 113 | 
            +
                    stub_request(:post, 'https://launchpad.net/+access-token').
         | 
| 114 | 
            +
                       to_raise(::OpenSSL::SSL::SSLError.new("SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed"))
         | 
| 115 | 
            +
                    get '/auth/launchpad/callback', {:oauth_verifier => 'dudeman'}, {'rack.session' => {'oauth' => {"launchpad" => {'callback_confirmed' => true, 'request_token' => 'yourtoken', 'request_secret' => 'yoursecret'}}}}
         | 
| 116 | 
            +
                  end
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                  it 'should call fail! with :service_unavailable' do
         | 
| 119 | 
            +
                    last_request.env['omniauth.error'].should be_kind_of(::OpenSSL::SSL::SSLError)
         | 
| 120 | 
            +
                    last_request.env['omniauth.error.type'] = :service_unavailable
         | 
| 121 | 
            +
                  end
         | 
| 122 | 
            +
                end
         | 
| 123 | 
            +
              end
         | 
| 124 | 
            +
             | 
| 125 | 
            +
              describe '/auth/launchpad/callback with expired session' do
         | 
| 126 | 
            +
                before do
         | 
| 127 | 
            +
                  stub_request(:post, 'https://launchpad.net/+request-token').
         | 
| 128 | 
            +
                     to_return(:body => "oauth_token=yourtoken&oauth_token_secret=yoursecret")
         | 
| 129 | 
            +
                  get '/auth/launchpad/callback', {:oauth_verifier => 'dudeman'}, {'rack.session' => {}}
         | 
| 130 | 
            +
                end
         | 
| 131 | 
            +
             | 
| 132 | 
            +
                it 'should call fail! with :session_expired' do
         | 
| 133 | 
            +
                  last_request.env['omniauth.error'].should be_kind_of(::OmniAuth::NoSessionError)
         | 
| 134 | 
            +
                  last_request.env['omniauth.error.type'] = :session_expired
         | 
| 135 | 
            +
                end
         | 
| 136 | 
            +
              end
         | 
| 137 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            $:.unshift File.expand_path('..', __FILE__)
         | 
| 2 | 
            +
            $:.unshift File.expand_path('../../lib', __FILE__)
         | 
| 3 | 
            +
            require 'simplecov'
         | 
| 4 | 
            +
            SimpleCov.start
         | 
| 5 | 
            +
            require 'rspec'
         | 
| 6 | 
            +
            require 'rack/test'
         | 
| 7 | 
            +
            require 'webmock/rspec'
         | 
| 8 | 
            +
            require 'omniauth'
         | 
| 9 | 
            +
            require 'omniauth-oauth'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            RSpec.configure do |config|
         | 
| 12 | 
            +
              config.include WebMock::API
         | 
| 13 | 
            +
              config.include Rack::Test::Methods
         | 
| 14 | 
            +
              config.extend  OmniAuth::Test::StrategyMacros, :type => :strategy
         | 
| 15 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,29 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: omniauth-launchpad
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0 | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - João Pereira
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2017-04-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - " | 
| 17 | 
            +
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: ' | 
| 19 | 
            +
                    version: '0'
         | 
| 20 20 | 
             
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - - " | 
| 24 | 
            +
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: ' | 
| 26 | 
            +
                    version: '0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: rake
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -144,13 +144,12 @@ extensions: [] | |
| 144 144 | 
             
            extra_rdoc_files: []
         | 
| 145 145 | 
             
            files:
         | 
| 146 146 | 
             
            - ".gitignore"
         | 
| 147 | 
            +
            - ".rspec"
         | 
| 148 | 
            +
            - ".travis.yml"
         | 
| 147 149 | 
             
            - Gemfile
         | 
| 148 150 | 
             
            - LICENSE.txt
         | 
| 149 151 | 
             
            - README.md
         | 
| 150 152 | 
             
            - Rakefile
         | 
| 151 | 
            -
            - example/Gemfile
         | 
| 152 | 
            -
            - example/Gemfile.lock
         | 
| 153 | 
            -
            - example/config.ru
         | 
| 154 153 | 
             
            - example/simple/Gemfile
         | 
| 155 154 | 
             
            - example/simple/Gemfile.lock
         | 
| 156 155 | 
             
            - example/simple/My Runner.run
         | 
| @@ -160,6 +159,8 @@ files: | |
| 160 159 | 
             
            - lib/omniauth/launchpad/version.rb
         | 
| 161 160 | 
             
            - lib/omniauth/strategies/launchpad.rb
         | 
| 162 161 | 
             
            - omniauth-launchpad.gemspec
         | 
| 162 | 
            +
            - spec/omniauth/strategies/launchpad_spec.rb
         | 
| 163 | 
            +
            - spec/spec_helper.rb
         | 
| 163 164 | 
             
            homepage: ''
         | 
| 164 165 | 
             
            licenses:
         | 
| 165 166 | 
             
            - MIT
         | 
| @@ -172,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 172 173 | 
             
              requirements:
         | 
| 173 174 | 
             
              - - ">="
         | 
| 174 175 | 
             
                - !ruby/object:Gem::Version
         | 
| 175 | 
            -
                  version:  | 
| 176 | 
            +
                  version: 1.9.2
         | 
| 176 177 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 177 178 | 
             
              requirements:
         | 
| 178 179 | 
             
              - - ">="
         | 
| @@ -180,8 +181,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 180 181 | 
             
                  version: '0'
         | 
| 181 182 | 
             
            requirements: []
         | 
| 182 183 | 
             
            rubyforge_project: 
         | 
| 183 | 
            -
            rubygems_version: 2. | 
| 184 | 
            +
            rubygems_version: 2.6.10
         | 
| 184 185 | 
             
            signing_key: 
         | 
| 185 186 | 
             
            specification_version: 4
         | 
| 186 187 | 
             
            summary: Launchpad login for OmniAuth
         | 
| 187 | 
            -
            test_files: | 
| 188 | 
            +
            test_files:
         | 
| 189 | 
            +
            - spec/omniauth/strategies/launchpad_spec.rb
         | 
| 190 | 
            +
            - spec/spec_helper.rb
         | 
    
        data/example/Gemfile
    DELETED
    
    
    
        data/example/Gemfile.lock
    DELETED
    
    | @@ -1,36 +0,0 @@ | |
| 1 | 
            -
            PATH
         | 
| 2 | 
            -
              remote: ../../
         | 
| 3 | 
            -
              specs:
         | 
| 4 | 
            -
                omniauth-launchpad (0.0.1)
         | 
| 5 | 
            -
                  multi_json (~> 1.3)
         | 
| 6 | 
            -
                  omniauth (>= 1.1.1)
         | 
| 7 | 
            -
                  omniauth-oauth (>= 1.0.1)
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            GEM
         | 
| 10 | 
            -
              remote: http://rubygems.org/
         | 
| 11 | 
            -
              specs:
         | 
| 12 | 
            -
                hashie (3.4.1)
         | 
| 13 | 
            -
                multi_json (1.11.0)
         | 
| 14 | 
            -
                oauth (0.4.7)
         | 
| 15 | 
            -
                omniauth (1.2.2)
         | 
| 16 | 
            -
                  hashie (>= 1.2, < 4)
         | 
| 17 | 
            -
                  rack (~> 1.0)
         | 
| 18 | 
            -
                omniauth-oauth (1.0.1)
         | 
| 19 | 
            -
                  oauth
         | 
| 20 | 
            -
                  omniauth (~> 1.0)
         | 
| 21 | 
            -
                rack (1.6.0)
         | 
| 22 | 
            -
                rack-protection (1.5.3)
         | 
| 23 | 
            -
                  rack
         | 
| 24 | 
            -
                sinatra (1.4.6)
         | 
| 25 | 
            -
                  rack (~> 1.4)
         | 
| 26 | 
            -
                  rack-protection (~> 1.4)
         | 
| 27 | 
            -
                  tilt (>= 1.3, < 3)
         | 
| 28 | 
            -
                tilt (2.0.1)
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            PLATFORMS
         | 
| 31 | 
            -
              ruby
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            DEPENDENCIES
         | 
| 34 | 
            -
              omniauth
         | 
| 35 | 
            -
              omniauth-launchpad!
         | 
| 36 | 
            -
              sinatra
         | 
    
        data/example/config.ru
    DELETED
    
    | @@ -1,43 +0,0 @@ | |
| 1 | 
            -
            require 'bundler/setup'
         | 
| 2 | 
            -
            require 'sinatra/base'
         | 
| 3 | 
            -
            require 'omniauth'
         | 
| 4 | 
            -
            require 'launchpad'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
            class App < Sinatra::Base
         | 
| 9 | 
            -
             | 
| 10 | 
            -
              get '/' do
         | 
| 11 | 
            -
                redirect '/auth/launchpad'
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
              # Support both GET and POST for callbacks
         | 
| 14 | 
            -
              %w(get post).each do |method|
         | 
| 15 | 
            -
                send(method, "/auth/:provider/callback") do
         | 
| 16 | 
            -
                  # Everything you care about is in env['omniauth.auth']
         | 
| 17 | 
            -
                  # You'll probably want to keep track of your credential hash somewhere.
         | 
| 18 | 
            -
                  # Loading it into a client object should be easy:
         | 
| 19 | 
            -
                  # client.authorization.update_token!(credential_hash)
         | 
| 20 | 
            -
                  content_type 'application/json'
         | 
| 21 | 
            -
                  MultiJson.encode(request.env)
         | 
| 22 | 
            -
                end
         | 
| 23 | 
            -
              end
         | 
| 24 | 
            -
              get '/auth/failure' do
         | 
| 25 | 
            -
                content_type 'application/json'
         | 
| 26 | 
            -
                MultiJson.encode(request.env)
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
            end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            use Rack::Session::Cookie
         | 
| 31 | 
            -
             | 
| 32 | 
            -
            use OmniAuth::Builder do
         | 
| 33 | 
            -
              provider :launchpad,
         | 
| 34 | 
            -
                ENV['CLIENT_ID'],
         | 
| 35 | 
            -
                ENV['CLIENT_SECRET'],
         | 
| 36 | 
            -
                :scope => [
         | 
| 37 | 
            -
                  'https://www.googleapis.com/auth/userinfo.profile',
         | 
| 38 | 
            -
                  'https://www.googleapis.com/auth/plus.me'
         | 
| 39 | 
            -
                ],
         | 
| 40 | 
            -
                :skip_info => false
         | 
| 41 | 
            -
            end
         | 
| 42 | 
            -
             | 
| 43 | 
            -
            run App.new
         |