omniauth-oauth2 1.2.0 → 1.3.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/.rubocop.yml +22 -62
- data/.travis.yml +10 -10
- data/Gemfile +11 -18
- data/Rakefile +4 -4
- data/lib/omniauth-oauth2.rb +2 -2
- data/lib/omniauth-oauth2/version.rb +1 -1
- data/lib/omniauth/strategies/oauth2.rb +23 -27
- data/omniauth-oauth2.gemspec +10 -12
- data/spec/helper.rb +15 -15
- data/spec/omniauth/strategies/oauth2_spec.rb +39 -39
- metadata +3 -38
- data/Guardfile +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97b27d270aece449c0fbd5318ef61056b3179b03
|
4
|
+
data.tar.gz: 94cc90831da565635c64c5ff036926c7999d3619
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 021f0ccaed1fb0bca365ea86ffc31c955e678da42fdad37f8083c71132d7f365af84d0f21da143f6328cb658a26d4e789249d9743899c776bf3872fda0529b9b
|
7
|
+
data.tar.gz: 68ad4394e13f8adce5aac65da939f823b572ab58d11928ee05d1fba4e932360db79893e1038ac7d039094467c9a3fe98fea564a064b4802ff06d0a53082a549e
|
data/.rubocop.yml
CHANGED
@@ -1,82 +1,42 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
- 'Gemfile'
|
4
|
-
- 'Rakefile'
|
5
|
-
- 'omniauth-oauth2.gemspec'
|
1
|
+
Metrics/BlockNesting:
|
2
|
+
Max: 2
|
6
3
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
CountKeywordArgs: true
|
4
|
+
Metrics/LineLength:
|
5
|
+
AllowURI: true
|
6
|
+
Enabled: false
|
11
7
|
|
12
|
-
MethodLength:
|
8
|
+
Metrics/MethodLength:
|
13
9
|
CountComments: false
|
14
|
-
Max:
|
10
|
+
Max: 10
|
15
11
|
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
Metrics/ParameterLists:
|
13
|
+
Max: 4
|
14
|
+
CountKeywordArgs: true
|
19
15
|
|
20
|
-
|
21
|
-
|
16
|
+
Style/AccessModifierIndentation:
|
17
|
+
EnforcedStyle: outdent
|
18
|
+
|
19
|
+
Style/CollectionMethods:
|
22
20
|
PreferredMethods:
|
23
21
|
map: 'collect'
|
24
22
|
reduce: 'inject'
|
25
23
|
find: 'detect'
|
26
24
|
find_all: 'select'
|
27
25
|
|
28
|
-
|
29
|
-
# level as the def keyword. My personal preference is to outdent these keywords
|
30
|
-
# because I think when scanning code it makes it easier to identify the
|
31
|
-
# sections of code and visually separate them. When the keyword is at the same
|
32
|
-
# level I think it sort of blends in with the def keywords and makes it harder
|
33
|
-
# to scan the code and see where the sections are.
|
34
|
-
AccessModifierIndentation:
|
26
|
+
Style/Documentation:
|
35
27
|
Enabled: false
|
36
28
|
|
37
|
-
|
38
|
-
LineLength:
|
29
|
+
Style/DoubleNegation:
|
39
30
|
Enabled: false
|
40
31
|
|
41
|
-
|
42
|
-
Documentation:
|
43
|
-
Enabled: false
|
44
|
-
|
45
|
-
# Enforce Ruby 1.8-compatible hash syntax
|
46
|
-
HashSyntax:
|
32
|
+
Style/HashSyntax:
|
47
33
|
EnforcedStyle: hash_rockets
|
48
34
|
|
49
|
-
|
50
|
-
SpaceInsideHashLiteralBraces:
|
35
|
+
Style/SpaceInsideHashLiteralBraces:
|
51
36
|
EnforcedStyle: no_space
|
52
37
|
|
53
|
-
|
54
|
-
|
55
|
-
Enabled: false
|
56
|
-
|
57
|
-
# Don't require magic comment at the top of every file
|
58
|
-
Encoding:
|
59
|
-
Enabled: false
|
60
|
-
|
61
|
-
# Enforce outdenting of access modifiers (i.e. public, private, protected)
|
62
|
-
AccessModifierIndentation:
|
63
|
-
EnforcedStyle: outdent
|
64
|
-
|
65
|
-
EmptyLinesAroundAccessModifier:
|
66
|
-
Enabled: true
|
67
|
-
|
68
|
-
# Align ends correctly
|
69
|
-
EndAlignment:
|
70
|
-
AlignWith: variable
|
71
|
-
|
72
|
-
# Indentation of when/else
|
73
|
-
CaseIndentation:
|
74
|
-
IndentWhenRelativeTo: end
|
75
|
-
IndentOneStep: false
|
76
|
-
|
77
|
-
Lambda:
|
78
|
-
Enabled: false
|
38
|
+
Style/StringLiterals:
|
39
|
+
EnforcedStyle: double_quotes
|
79
40
|
|
80
|
-
|
81
|
-
|
82
|
-
- 'lib/omniauth-oauth2.rb'
|
41
|
+
Style/TrailingComma:
|
42
|
+
EnforcedStyleForMultiline: 'comma'
|
data/.travis.yml
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
|
1
|
+
before_install: gem install bundler
|
2
|
+
env:
|
3
|
+
global:
|
4
|
+
- JRUBY_OPTS="$JRUBY_OPTS --debug"
|
2
5
|
language: ruby
|
3
6
|
rvm:
|
4
7
|
- 1.8.7
|
5
|
-
- 1.9.2
|
6
8
|
- 1.9.3
|
7
9
|
- 2.0.0
|
8
|
-
- 2.1
|
10
|
+
- 2.1
|
11
|
+
- 2.2
|
12
|
+
- jruby-18mode
|
13
|
+
- jruby-19mode
|
14
|
+
- jruby-head
|
9
15
|
- rbx-2
|
10
16
|
- ruby-head
|
11
17
|
matrix:
|
12
|
-
include:
|
13
|
-
- rvm: jruby-18mode
|
14
|
-
env: JRUBY_OPTS="$JRUBY_OPTS --debug"
|
15
|
-
- rvm: jruby-19mode
|
16
|
-
env: JRUBY_OPTS="$JRUBY_OPTS --debug"
|
17
|
-
- rvm: jruby-head
|
18
|
-
env: JRUBY_OPTS="$JRUBY_OPTS --debug"
|
19
18
|
allow_failures:
|
20
19
|
- rvm: jruby-head
|
21
20
|
- rvm: ruby-head
|
22
21
|
fast_finish: true
|
22
|
+
sudo: false
|
data/Gemfile
CHANGED
@@ -1,24 +1,17 @@
|
|
1
|
-
source
|
1
|
+
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem
|
4
|
-
|
5
|
-
group :development do
|
6
|
-
platforms :ruby_19, :ruby_20, :ruby_21 do
|
7
|
-
gem 'guard'
|
8
|
-
gem 'guard-rspec'
|
9
|
-
gem 'guard-bundler'
|
10
|
-
end
|
11
|
-
end
|
3
|
+
gem "rake"
|
12
4
|
|
13
5
|
group :test do
|
14
|
-
gem
|
15
|
-
gem
|
16
|
-
gem
|
17
|
-
gem
|
18
|
-
gem
|
19
|
-
gem
|
20
|
-
gem
|
21
|
-
gem
|
6
|
+
gem "coveralls"
|
7
|
+
gem "json", :platforms => [:jruby, :ruby_18, :ruby_19]
|
8
|
+
gem "mime-types", "~> 1.25", :platforms => [:jruby, :ruby_18]
|
9
|
+
gem "rack-test"
|
10
|
+
gem "rest-client", "~> 1.6.0", :platforms => [:jruby, :ruby_18]
|
11
|
+
gem "rspec", "~> 3.2"
|
12
|
+
gem "rubocop", ">= 0.30", :platforms => [:ruby_19, :ruby_20, :ruby_21, :ruby_22]
|
13
|
+
gem "simplecov", ">= 0.9"
|
14
|
+
gem "webmock"
|
22
15
|
end
|
23
16
|
|
24
17
|
# Specify your gem's dependencies in omniauth-oauth2.gemspec
|
data/Rakefile
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
require
|
3
|
-
require
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
require "rspec/core/rake_task"
|
4
4
|
|
5
5
|
RSpec::Core::RakeTask.new
|
6
6
|
|
7
7
|
task :test => :spec
|
8
8
|
|
9
9
|
begin
|
10
|
-
require
|
10
|
+
require "rubocop/rake_task"
|
11
11
|
RuboCop::RakeTask.new
|
12
12
|
rescue LoadError
|
13
13
|
task :rubocop do
|
14
|
-
$stderr.puts
|
14
|
+
$stderr.puts "RuboCop is disabled"
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
data/lib/omniauth-oauth2.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "omniauth-oauth2/version" # rubocop:disable FileName
|
2
|
+
require "omniauth/strategies/oauth2"
|
@@ -1,10 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require 'faraday' # for Faraday::Error::TimeoutError and Faraday::Error::ConnectionFailed
|
7
|
-
require 'multi_json' # for MultiJson::DecodeError
|
1
|
+
require "oauth2"
|
2
|
+
require "omniauth"
|
3
|
+
require "securerandom"
|
4
|
+
require "socket" # for SocketError
|
5
|
+
require "timeout" # for Timeout::Error
|
8
6
|
|
9
7
|
module OmniAuth
|
10
8
|
module Strategies
|
@@ -39,10 +37,10 @@ module OmniAuth
|
|
39
37
|
end
|
40
38
|
|
41
39
|
credentials do
|
42
|
-
hash = {
|
43
|
-
hash.merge!(
|
44
|
-
hash.merge!(
|
45
|
-
hash.merge!(
|
40
|
+
hash = {"token" => access_token.token}
|
41
|
+
hash.merge!("refresh_token" => access_token.refresh_token) if access_token.expires? && access_token.refresh_token
|
42
|
+
hash.merge!("expires_at" => access_token.expires_at) if access_token.expires?
|
43
|
+
hash.merge!("expires" => access_token.expires?)
|
46
44
|
hash
|
47
45
|
end
|
48
46
|
|
@@ -52,25 +50,25 @@ module OmniAuth
|
|
52
50
|
|
53
51
|
def authorize_params
|
54
52
|
options.authorize_params[:state] = SecureRandom.hex(24)
|
55
|
-
params = options.authorize_params.merge(options_for(
|
53
|
+
params = options.authorize_params.merge(options_for("authorize"))
|
56
54
|
if OmniAuth.config.test_mode
|
57
55
|
@env ||= {}
|
58
|
-
@env[
|
56
|
+
@env["rack.session"] ||= {}
|
59
57
|
end
|
60
|
-
session[
|
58
|
+
session["omniauth.state"] = params[:state]
|
61
59
|
params
|
62
60
|
end
|
63
61
|
|
64
62
|
def token_params
|
65
|
-
options.token_params.merge(options_for(
|
63
|
+
options.token_params.merge(options_for("token"))
|
66
64
|
end
|
67
65
|
|
68
|
-
def callback_phase # rubocop:disable CyclomaticComplexity
|
69
|
-
error = request.params[
|
66
|
+
def callback_phase # rubocop:disable AbcSize, CyclomaticComplexity, MethodLength, PerceivedComplexity
|
67
|
+
error = request.params["error_reason"] || request.params["error"]
|
70
68
|
if error
|
71
|
-
fail!(error, CallbackError.new(request.params[
|
72
|
-
elsif !options.provider_ignores_state && (request.params[
|
73
|
-
fail!(:csrf_detected, CallbackError.new(:csrf_detected,
|
69
|
+
fail!(error, CallbackError.new(request.params["error"], request.params["error_description"] || request.params["error_reason"], request.params["error_uri"]))
|
70
|
+
elsif !options.provider_ignores_state && (request.params["state"].to_s.empty? || request.params["state"] != session.delete("omniauth.state"))
|
71
|
+
fail!(:csrf_detected, CallbackError.new(:csrf_detected, "CSRF detected"))
|
74
72
|
else
|
75
73
|
self.access_token = build_access_token
|
76
74
|
self.access_token = access_token.refresh! if access_token.expired?
|
@@ -78,18 +76,16 @@ module OmniAuth
|
|
78
76
|
end
|
79
77
|
rescue ::OAuth2::Error, CallbackError => e
|
80
78
|
fail!(:invalid_credentials, e)
|
81
|
-
rescue ::
|
82
|
-
fail!(:invalid_response, e)
|
83
|
-
rescue ::Timeout::Error, ::Errno::ETIMEDOUT, Faraday::Error::TimeoutError => e
|
79
|
+
rescue ::Timeout::Error, ::Errno::ETIMEDOUT => e
|
84
80
|
fail!(:timeout, e)
|
85
|
-
rescue ::SocketError
|
81
|
+
rescue ::SocketError => e
|
86
82
|
fail!(:failed_to_connect, e)
|
87
83
|
end
|
88
84
|
|
89
85
|
protected
|
90
86
|
|
91
87
|
def build_access_token
|
92
|
-
verifier = request.params[
|
88
|
+
verifier = request.params["code"]
|
93
89
|
client.auth_code.get_token(verifier, {:redirect_uri => callback_url}.merge(token_params.to_hash(:symbolize_keys => true)), deep_symbolize(options.auth_token_params))
|
94
90
|
end
|
95
91
|
|
@@ -121,11 +117,11 @@ module OmniAuth
|
|
121
117
|
end
|
122
118
|
|
123
119
|
def message
|
124
|
-
[error, error_reason, error_uri].compact.join(
|
120
|
+
[error, error_reason, error_uri].compact.join(" | ")
|
125
121
|
end
|
126
122
|
end
|
127
123
|
end
|
128
124
|
end
|
129
125
|
end
|
130
126
|
|
131
|
-
OmniAuth.config.add_camelization
|
127
|
+
OmniAuth.config.add_camelization "oauth2", "OAuth2"
|
data/omniauth-oauth2.gemspec
CHANGED
@@ -1,26 +1,24 @@
|
|
1
|
-
lib = File.expand_path(
|
1
|
+
lib = File.expand_path("../lib", __FILE__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require
|
3
|
+
require "omniauth-oauth2/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
|
-
gem.add_dependency
|
7
|
-
gem.add_dependency
|
8
|
-
gem.add_dependency 'oauth2', '~> 1.0'
|
9
|
-
gem.add_dependency 'omniauth', '~> 1.2'
|
6
|
+
gem.add_dependency "oauth2", "~> 1.0"
|
7
|
+
gem.add_dependency "omniauth", "~> 1.2"
|
10
8
|
|
11
|
-
gem.add_development_dependency
|
9
|
+
gem.add_development_dependency "bundler", "~> 1.0"
|
12
10
|
|
13
|
-
gem.authors = [
|
14
|
-
gem.email = [
|
15
|
-
gem.description =
|
11
|
+
gem.authors = ["Michael Bleigh", "Erik Michaels-Ober"]
|
12
|
+
gem.email = ["michael@intridea.com", "sferik@gmail.com"]
|
13
|
+
gem.description = "An abstract OAuth2 strategy for OmniAuth."
|
16
14
|
gem.summary = gem.description
|
17
|
-
gem.homepage =
|
15
|
+
gem.homepage = "https://github.com/intridea/omniauth-oauth2"
|
18
16
|
gem.licenses = %w(MIT)
|
19
17
|
|
20
18
|
gem.executables = `git ls-files -- bin/*`.split("\n").collect { |f| File.basename(f) }
|
21
19
|
gem.files = `git ls-files`.split("\n")
|
22
20
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
23
|
-
gem.name =
|
21
|
+
gem.name = "omniauth-oauth2"
|
24
22
|
gem.require_paths = %w(lib)
|
25
23
|
gem.version = OmniAuth::OAuth2::VERSION
|
26
24
|
end
|
data/spec/helper.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
$LOAD_PATH.unshift File.expand_path(
|
2
|
-
$LOAD_PATH.unshift File.expand_path(
|
1
|
+
$LOAD_PATH.unshift File.expand_path("..", __FILE__)
|
2
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
3
3
|
|
4
|
-
|
5
|
-
require
|
4
|
+
if RUBY_VERSION >= "1.9"
|
5
|
+
require "simplecov"
|
6
|
+
require "coveralls"
|
6
7
|
|
7
|
-
SimpleCov.
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
minimum_coverage(76)
|
8
|
+
SimpleCov.formatters = [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter]
|
9
|
+
|
10
|
+
SimpleCov.start do
|
11
|
+
minimum_coverage(78.48)
|
12
|
+
end
|
13
13
|
end
|
14
14
|
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
19
|
-
require
|
15
|
+
require "rspec"
|
16
|
+
require "rack/test"
|
17
|
+
require "webmock/rspec"
|
18
|
+
require "omniauth"
|
19
|
+
require "omniauth-oauth2"
|
20
20
|
|
21
21
|
RSpec.configure do |config|
|
22
22
|
config.expect_with :rspec do |c|
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require "helper"
|
2
2
|
|
3
3
|
describe OmniAuth::Strategies::OAuth2 do
|
4
4
|
def app
|
5
5
|
lambda do |_env|
|
6
|
-
[200, {}, [
|
6
|
+
[200, {}, ["Hello."]]
|
7
7
|
end
|
8
8
|
end
|
9
9
|
let(:fresh_strategy) { Class.new(OmniAuth::Strategies::OAuth2) }
|
@@ -16,65 +16,65 @@ describe OmniAuth::Strategies::OAuth2 do
|
|
16
16
|
OmniAuth.config.test_mode = false
|
17
17
|
end
|
18
18
|
|
19
|
-
describe
|
19
|
+
describe "#client" do
|
20
20
|
subject { fresh_strategy }
|
21
21
|
|
22
|
-
it
|
23
|
-
instance = subject.new(app, :client_options => {
|
24
|
-
expect(instance.client.options[:authorize_url]).to eq(
|
22
|
+
it "is initialized with symbolized client_options" do
|
23
|
+
instance = subject.new(app, :client_options => {"authorize_url" => "https://example.com"})
|
24
|
+
expect(instance.client.options[:authorize_url]).to eq("https://example.com")
|
25
25
|
end
|
26
26
|
|
27
|
-
it
|
28
|
-
instance = subject.new(app, :client_options => {
|
29
|
-
expect(instance.client.options[:connection_opts][:ssl]).to eq(:ca_path =>
|
27
|
+
it "sets ssl options as connection options" do
|
28
|
+
instance = subject.new(app, :client_options => {"ssl" => {"ca_path" => "foo"}})
|
29
|
+
expect(instance.client.options[:connection_opts][:ssl]).to eq(:ca_path => "foo")
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe "#authorize_params" do
|
34
34
|
subject { fresh_strategy }
|
35
35
|
|
36
|
-
it
|
37
|
-
instance = subject.new(
|
38
|
-
expect(instance.authorize_params[
|
39
|
-
expect(instance.authorize_params[
|
36
|
+
it "includes any authorize params passed in the :authorize_params option" do
|
37
|
+
instance = subject.new("abc", "def", :authorize_params => {:foo => "bar", :baz => "zip"})
|
38
|
+
expect(instance.authorize_params["foo"]).to eq("bar")
|
39
|
+
expect(instance.authorize_params["baz"]).to eq("zip")
|
40
40
|
end
|
41
41
|
|
42
|
-
it
|
43
|
-
instance = subject.new(
|
44
|
-
expect(instance.authorize_params[
|
45
|
-
expect(instance.authorize_params[
|
42
|
+
it "includes top-level options that are marked as :authorize_options" do
|
43
|
+
instance = subject.new("abc", "def", :authorize_options => [:scope, :foo, :state], :scope => "bar", :foo => "baz")
|
44
|
+
expect(instance.authorize_params["scope"]).to eq("bar")
|
45
|
+
expect(instance.authorize_params["foo"]).to eq("baz")
|
46
46
|
end
|
47
47
|
|
48
|
-
it
|
49
|
-
instance = subject.new(
|
50
|
-
expect(instance.authorize_params.keys).to eq([
|
51
|
-
expect(instance.session[
|
48
|
+
it "includes random state in the authorize params" do
|
49
|
+
instance = subject.new("abc", "def")
|
50
|
+
expect(instance.authorize_params.keys).to eq(["state"])
|
51
|
+
expect(instance.session["omniauth.state"]).not_to be_empty
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
-
describe
|
55
|
+
describe "#token_params" do
|
56
56
|
subject { fresh_strategy }
|
57
57
|
|
58
|
-
it
|
59
|
-
instance = subject.new(
|
60
|
-
expect(instance.token_params).to eq(
|
58
|
+
it "includes any authorize params passed in the :authorize_params option" do
|
59
|
+
instance = subject.new("abc", "def", :token_params => {:foo => "bar", :baz => "zip"})
|
60
|
+
expect(instance.token_params).to eq("foo" => "bar", "baz" => "zip")
|
61
61
|
end
|
62
62
|
|
63
|
-
it
|
64
|
-
instance = subject.new(
|
65
|
-
expect(instance.token_params).to eq(
|
63
|
+
it "includes top-level options that are marked as :authorize_options" do
|
64
|
+
instance = subject.new("abc", "def", :token_options => [:scope, :foo], :scope => "bar", :foo => "baz")
|
65
|
+
expect(instance.token_params).to eq("scope" => "bar", "foo" => "baz")
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
describe
|
69
|
+
describe "#callback_phase" do
|
70
70
|
subject { fresh_strategy }
|
71
|
-
it
|
72
|
-
instance = subject.new(
|
71
|
+
it "calls fail with the client error received" do
|
72
|
+
instance = subject.new("abc", "def")
|
73
73
|
allow(instance).to receive(:request) do
|
74
|
-
double(
|
74
|
+
double("Request", :params => {"error_reason" => "user_denied", "error" => "access_denied"})
|
75
75
|
end
|
76
76
|
|
77
|
-
expect(instance).to receive(:fail!).with(
|
77
|
+
expect(instance).to receive(:fail!).with("user_denied", anything)
|
78
78
|
instance.callback_phase
|
79
79
|
end
|
80
80
|
end
|
@@ -82,17 +82,17 @@ end
|
|
82
82
|
|
83
83
|
describe OmniAuth::Strategies::OAuth2::CallbackError do
|
84
84
|
let(:error) { Class.new(OmniAuth::Strategies::OAuth2::CallbackError) }
|
85
|
-
describe
|
85
|
+
describe "#message" do
|
86
86
|
subject { error }
|
87
|
-
it
|
88
|
-
instance = subject.new(
|
87
|
+
it "includes all of the attributes" do
|
88
|
+
instance = subject.new("error", "description", "uri")
|
89
89
|
expect(instance.message).to match(/error/)
|
90
90
|
expect(instance.message).to match(/description/)
|
91
91
|
expect(instance.message).to match(/uri/)
|
92
92
|
end
|
93
|
-
it
|
93
|
+
it "includes all of the attributes" do
|
94
94
|
instance = subject.new(nil, :symbol)
|
95
|
-
expect(instance.message).to eq(
|
95
|
+
expect(instance.message).to eq("symbol")
|
96
96
|
end
|
97
97
|
end
|
98
98
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-oauth2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Bleigh
|
@@ -9,42 +9,8 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-04-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: faraday
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ">="
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '0.8'
|
21
|
-
- - "<"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: '0.10'
|
24
|
-
type: :runtime
|
25
|
-
prerelease: false
|
26
|
-
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
requirements:
|
28
|
-
- - ">="
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: '0.8'
|
31
|
-
- - "<"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0.10'
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: multi_json
|
36
|
-
requirement: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.3'
|
41
|
-
type: :runtime
|
42
|
-
prerelease: false
|
43
|
-
version_requirements: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '1.3'
|
48
14
|
- !ruby/object:Gem::Dependency
|
49
15
|
name: oauth2
|
50
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,7 +66,6 @@ files:
|
|
100
66
|
- ".rubocop.yml"
|
101
67
|
- ".travis.yml"
|
102
68
|
- Gemfile
|
103
|
-
- Guardfile
|
104
69
|
- LICENSE.md
|
105
70
|
- README.md
|
106
71
|
- Rakefile
|
@@ -130,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
95
|
version: '0'
|
131
96
|
requirements: []
|
132
97
|
rubyforge_project:
|
133
|
-
rubygems_version: 2.
|
98
|
+
rubygems_version: 2.4.5
|
134
99
|
signing_key:
|
135
100
|
specification_version: 4
|
136
101
|
summary: An abstract OAuth2 strategy for OmniAuth.
|
data/Guardfile
DELETED