omniauth-cas 0.0.7 → 1.0.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.
- data/.rvmrc +1 -55
- data/Gemfile +1 -0
- data/README.md +24 -2
- data/lib/omniauth/cas/version.rb +1 -1
- data/omniauth-cas.gemspec +4 -5
- data/spec/omniauth/strategies/cas/service_ticket_validator_spec.rb +12 -13
- data/spec/omniauth/strategies/cas_spec.rb +61 -63
- data/spec/spec_helper.rb +3 -6
- metadata +66 -32
data/.rvmrc
CHANGED
@@ -1,55 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
# This is an RVM Project .rvmrc file, used to automatically load the ruby
|
4
|
-
# development environment upon cd'ing into the directory
|
5
|
-
|
6
|
-
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
|
7
|
-
environment_id="ruby-1.9.2-p290@omniauth-cas"
|
8
|
-
|
9
|
-
#
|
10
|
-
# Uncomment following line if you want options to be set only for given project.
|
11
|
-
#
|
12
|
-
# PROJECT_JRUBY_OPTS=( --1.9 )
|
13
|
-
|
14
|
-
#
|
15
|
-
# First we attempt to load the desired environment directly from the environment
|
16
|
-
# file. This is very fast and efficient compared to running through the entire
|
17
|
-
# CLI and selector. If you want feedback on which environment was used then
|
18
|
-
# insert the word 'use' after --create as this triggers verbose mode.
|
19
|
-
#
|
20
|
-
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
|
21
|
-
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
|
22
|
-
then
|
23
|
-
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
|
24
|
-
|
25
|
-
if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]
|
26
|
-
then
|
27
|
-
. "${rvm_path:-$HOME/.rvm}/hooks/after_use"
|
28
|
-
fi
|
29
|
-
else
|
30
|
-
# If the environment file has not yet been created, use the RVM CLI to select.
|
31
|
-
if ! rvm --create use "$environment_id"
|
32
|
-
then
|
33
|
-
echo "Failed to create RVM environment '${environment_id}'."
|
34
|
-
return 1
|
35
|
-
fi
|
36
|
-
fi
|
37
|
-
|
38
|
-
#
|
39
|
-
# If you use an RVM gemset file to install a list of gems (*.gems), you can have
|
40
|
-
# it be automatically loaded. Uncomment the following and adjust the filename if
|
41
|
-
# necessary.
|
42
|
-
#
|
43
|
-
# filename=".gems"
|
44
|
-
# if [[ -s "$filename" ]]
|
45
|
-
# then
|
46
|
-
# rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
|
47
|
-
# fi
|
48
|
-
|
49
|
-
# If you use bundler, this might be useful to you:
|
50
|
-
# if command -v bundle && [[ -s Gemfile ]]
|
51
|
-
# then
|
52
|
-
# bundle install
|
53
|
-
# fi
|
54
|
-
|
55
|
-
|
1
|
+
rvm --create use ruby-1.9.3-p194@omniauth-cas > /dev/null
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# OmniAuth CAS Strategy [![Build Status][travis_status]][travis]
|
1
|
+
# OmniAuth CAS Strategy [![Build Status][travis_status]][travis]
|
2
2
|
|
3
3
|
[travis]: http://travis-ci.org/dlindahl/omniauth-cas
|
4
4
|
[travis_status]: https://secure.travis-ci.org/dlindahl/omniauth-cas.png
|
@@ -30,7 +30,7 @@ Use like any other OmniAuth strategy:
|
|
30
30
|
|
31
31
|
```ruby
|
32
32
|
Rails.application.config.middleware.use OmniAuth::Builder do
|
33
|
-
provider :cas, :
|
33
|
+
provider :cas, host: 'cas.yourdomain.com'
|
34
34
|
end
|
35
35
|
```
|
36
36
|
|
@@ -48,6 +48,26 @@ Other configuration options:
|
|
48
48
|
* `logout_url` - The URL to use to logout a user. Defaults to `'/logout'`
|
49
49
|
* `uid_key` - The user data attribute to use as your user's unique identifier. Defaults to `'user'` (which usually contains the user's login name)
|
50
50
|
* `ca_path` - Optional when `ssl` is `true`. Sets path of a CA certification directory. See [Net::HTTP][net_http] for more details
|
51
|
+
* `disable_ssl_verification``- Optional when `ssl` is true. Disables verification.
|
52
|
+
|
53
|
+
## Migrating from OmniAuth 0.3
|
54
|
+
|
55
|
+
Given the following OmniAuth 0.3 configuration:
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
provider :CAS, cas_server: 'https://cas.example.com/cas/'
|
59
|
+
```
|
60
|
+
|
61
|
+
Your new settings should look similar to this:
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
provider :cas,
|
65
|
+
host: 'cas.example.com',
|
66
|
+
login_url: '/cas/login',
|
67
|
+
service_validate_url: '/cas/serviceValidate'
|
68
|
+
```
|
69
|
+
|
70
|
+
If you encounter problems wih SSL certificates you may want to set the `ca_path` parameter or activate `disable_ssl_verification` (not recommended).
|
51
71
|
|
52
72
|
## Contributing
|
53
73
|
|
@@ -62,6 +82,8 @@ Other configuration options:
|
|
62
82
|
Special thanks go out to the following people
|
63
83
|
|
64
84
|
* Phillip Aldridge (@iterateNZ) and JB Barth (@jbbarth) for helping out with Issue #3
|
85
|
+
* Elber Ribeiro (@dynaum) for Ubuntu SSL configuration support
|
86
|
+
* @rbq for README updates and OmniAuth 0.3 migration guide
|
65
87
|
|
66
88
|
[old_omniauth_cas]: https://github.com/intridea/omniauth/blob/0-3-stable/oa-enterprise/lib/omniauth/strategies/cas.rb
|
67
89
|
[document_up]: http://dlindahl.github.com/omniauth-cas/
|
data/lib/omniauth/cas/version.rb
CHANGED
data/omniauth-cas.gemspec
CHANGED
@@ -17,14 +17,13 @@ Gem::Specification.new do |gem|
|
|
17
17
|
|
18
18
|
gem.add_dependency 'omniauth', '~> 1.1.0'
|
19
19
|
gem.add_dependency 'nokogiri', '~> 1.5'
|
20
|
-
gem.add_dependency 'addressable', '~> 2.
|
20
|
+
gem.add_dependency 'addressable', '~> 2.3'
|
21
21
|
|
22
22
|
gem.add_development_dependency 'rake', '~> 0.9'
|
23
|
-
gem.add_development_dependency 'webmock', '~> 1.8.
|
24
|
-
gem.add_development_dependency 'simplecov', '~> 0.
|
25
|
-
gem.add_development_dependency 'rspec', '~> 2.
|
23
|
+
gem.add_development_dependency 'webmock', '~> 1.8.11'
|
24
|
+
gem.add_development_dependency 'simplecov', '~> 0.7.1'
|
25
|
+
gem.add_development_dependency 'rspec', '~> 2.11'
|
26
26
|
gem.add_development_dependency 'rack-test', '~> 0.6'
|
27
|
-
gem.add_development_dependency 'bourne', '~> 1.1.2'
|
28
27
|
|
29
28
|
gem.add_development_dependency 'awesome_print'
|
30
29
|
|
@@ -1,32 +1,31 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
require 'awesome_print'
|
3
|
-
require File.expand_path( 'spec/spec_helper' )
|
4
|
-
|
5
1
|
describe OmniAuth::Strategies::CAS::ServiceTicketValidator do
|
6
2
|
let(:strategy_stub) do
|
7
3
|
stub('strategy stub',
|
8
|
-
:
|
4
|
+
service_validate_url: 'https://example.org/serviceValidate'
|
9
5
|
)
|
10
6
|
end
|
11
7
|
|
12
8
|
let(:provider_options) do
|
13
9
|
stub('provider options',
|
14
|
-
|
15
|
-
:
|
10
|
+
disable_ssl_verification?: false,
|
11
|
+
ca_path: '/etc/ssl/certsZOMG'
|
16
12
|
)
|
17
13
|
end
|
18
14
|
|
19
15
|
let(:validator) do
|
20
|
-
OmniAuth::Strategies::CAS::ServiceTicketValidator.new( strategy_stub, provider_options,
|
16
|
+
OmniAuth::Strategies::CAS::ServiceTicketValidator.new( strategy_stub, provider_options, '/foo', nil )
|
21
17
|
end
|
22
18
|
|
23
|
-
describe
|
24
|
-
|
25
|
-
stub_request(:get,
|
19
|
+
describe '#user_info' do
|
20
|
+
subject do
|
21
|
+
stub_request(:get, 'https://example.org/serviceValidate?').to_return(status: 200, body: '')
|
26
22
|
validator.user_info
|
27
23
|
end
|
28
|
-
|
29
|
-
|
24
|
+
|
25
|
+
it 'should use the configured CA path' do
|
26
|
+
provider_options.should_receive :ca_path
|
27
|
+
|
28
|
+
subject
|
30
29
|
end
|
31
30
|
end
|
32
31
|
end
|
@@ -1,80 +1,85 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
describe OmniAuth::Strategies::CAS, :type => :strategy do
|
1
|
+
describe OmniAuth::Strategies::CAS, type: :strategy do
|
4
2
|
include Rack::Test::Methods
|
5
3
|
|
6
4
|
class MyCasProvider < OmniAuth::Strategies::CAS; end # TODO: Not really needed. just an alias but it requires the :name option which might confuse users...
|
7
5
|
def app
|
8
6
|
Rack::Builder.new {
|
9
7
|
use OmniAuth::Test::PhonySession
|
10
|
-
use MyCasProvider, :
|
8
|
+
use MyCasProvider, name: :cas, host: 'cas.example.org', uid_key: :employeeid
|
11
9
|
run lambda { |env| [404, {'Content-Type' => 'text/plain'}, [env.key?('omniauth.auth').to_s]] }
|
12
10
|
}.to_app
|
13
11
|
end
|
14
12
|
|
15
13
|
# TODO: Verify that these are even useful tests
|
16
|
-
shared_examples_for
|
17
|
-
let(:redirect_params) {
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
shared_examples_for 'a CAS redirect response' do
|
15
|
+
let(:redirect_params) { 'service=' + Rack::Utils.escape("http://example.org/auth/cas/callback?url=#{Rack::Utils.escape(return_url)}") }
|
16
|
+
|
17
|
+
before { get url, nil, request_env }
|
18
|
+
|
21
19
|
subject { last_response }
|
20
|
+
|
22
21
|
it { should be_redirect }
|
23
|
-
|
24
|
-
|
22
|
+
|
23
|
+
it 'should redirect to the CAS server' do
|
24
|
+
subject.headers['Location'].should == 'https://cas.example.org/login?' + redirect_params
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
describe 'GET /auth/cas' do
|
29
29
|
let(:return_url) { 'http://myapp.com/admin/foo' }
|
30
30
|
|
31
|
-
context
|
31
|
+
context 'with a referer' do
|
32
32
|
let(:url) { '/auth/cas' }
|
33
|
+
|
33
34
|
let(:request_env) { { 'HTTP_REFERER' => return_url } }
|
34
|
-
|
35
|
+
|
36
|
+
it_behaves_like 'a CAS redirect response'
|
35
37
|
end
|
36
|
-
|
38
|
+
|
39
|
+
context 'with an explicit return URL' do
|
37
40
|
let(:url) { "/auth/cas?url=#{return_url}" }
|
41
|
+
|
38
42
|
let(:request_env) { {} }
|
39
43
|
|
40
|
-
it_behaves_like
|
44
|
+
it_behaves_like 'a CAS redirect response'
|
41
45
|
end
|
42
46
|
end
|
43
47
|
|
44
48
|
describe 'GET /auth/cas/callback without a ticket' do
|
45
|
-
before
|
46
|
-
get '/auth/cas/callback'
|
47
|
-
end
|
49
|
+
before { get '/auth/cas/callback' }
|
48
50
|
|
49
51
|
subject { last_response }
|
50
52
|
|
51
53
|
it { should be_redirect }
|
52
|
-
|
53
|
-
|
54
|
+
|
55
|
+
it 'should have a failure message' do
|
56
|
+
subject.headers['Location'].should == '/auth/failure?message=no_ticket&strategy=cas'
|
54
57
|
end
|
55
58
|
end
|
56
59
|
|
57
60
|
describe 'GET /auth/cas/callback with an invalid ticket' do
|
58
61
|
before do
|
59
62
|
stub_request(:get, /^https:\/\/cas.example.org(:443)?\/serviceValidate\?([^&]+&)?ticket=9391d/).
|
60
|
-
to_return( :
|
63
|
+
to_return( body: File.read('spec/fixtures/cas_failure.xml') )
|
61
64
|
get '/auth/cas/callback?ticket=9391d'
|
62
65
|
end
|
63
66
|
|
64
67
|
subject { last_response }
|
65
68
|
|
66
69
|
it { should be_redirect }
|
70
|
+
|
67
71
|
it 'should have a failure message' do
|
68
|
-
subject.headers['Location'].should ==
|
72
|
+
subject.headers['Location'].should == '/auth/failure?message=invalid_ticket&strategy=cas'
|
69
73
|
end
|
70
74
|
end
|
71
75
|
|
72
76
|
describe 'GET /auth/cas/callback with a valid ticket' do
|
73
|
-
let(:return_url) {
|
77
|
+
let(:return_url) { 'http://127.0.0.10/?some=parameter' }
|
78
|
+
|
74
79
|
before do
|
75
|
-
stub_request(:get, /^https:\/\/cas.example.org(:443)?\/serviceValidate\?([^&]+&)?ticket=593af/)
|
76
|
-
|
77
|
-
|
80
|
+
stub_request(:get, /^https:\/\/cas.example.org(:443)?\/serviceValidate\?([^&]+&)?ticket=593af/)
|
81
|
+
.with { |request| @request_uri = request.uri.to_s }
|
82
|
+
.to_return( body: File.read('spec/fixtures/cas_success.xml') )
|
78
83
|
|
79
84
|
get "/auth/cas/callback?ticket=593af&url=#{return_url}"
|
80
85
|
end
|
@@ -83,42 +88,53 @@ describe OmniAuth::Strategies::CAS, :type => :strategy do
|
|
83
88
|
@request_uri.scan('ticket=').length.should == 1
|
84
89
|
end
|
85
90
|
|
86
|
-
it
|
87
|
-
WebMock.should have_requested(:get,
|
88
|
-
.with(:
|
89
|
-
:
|
90
|
-
:
|
91
|
+
it 'should properly encode the service URL' do
|
92
|
+
WebMock.should have_requested(:get, 'https://cas.example.org/serviceValidate')
|
93
|
+
.with(query: {
|
94
|
+
ticket: '593af',
|
95
|
+
service: 'http://example.org/auth/cas/callback?url=' + Rack::Utils.escape('http://127.0.0.10/?some=parameter')
|
91
96
|
})
|
92
97
|
end
|
93
98
|
|
94
99
|
context "request.env['omniauth.auth']" do
|
95
100
|
subject { last_request.env['omniauth.auth'] }
|
101
|
+
|
96
102
|
it { should be_kind_of Hash }
|
103
|
+
|
97
104
|
its(:provider) { should == :cas }
|
105
|
+
|
98
106
|
its(:uid) { should == '54'}
|
99
107
|
|
100
|
-
context
|
108
|
+
context 'the info hash' do
|
101
109
|
subject { last_request.env['omniauth.auth']['info'] }
|
110
|
+
|
102
111
|
it { should have(6).items }
|
103
|
-
|
104
|
-
its(
|
105
|
-
its(
|
106
|
-
its(
|
107
|
-
its(
|
108
|
-
its(
|
109
|
-
its(
|
112
|
+
|
113
|
+
its(:name) { should == 'Peter Segel' }
|
114
|
+
its(:first_name) { should == 'Peter' }
|
115
|
+
its(:last_name) { should == 'Segel' }
|
116
|
+
its(:email) { should == 'psegel@intridea.com' }
|
117
|
+
its(:location) { should == 'Washington, D.C.' }
|
118
|
+
its(:image) { should == '/images/user.jpg' }
|
119
|
+
its(:phone) { should == '555-555-5555' }
|
110
120
|
end
|
111
|
-
|
121
|
+
|
122
|
+
context 'the extra hash' do
|
112
123
|
subject { last_request.env['omniauth.auth']['extra'] }
|
124
|
+
|
113
125
|
it { should have(3).items }
|
114
|
-
|
115
|
-
its(
|
116
|
-
its(
|
126
|
+
|
127
|
+
its(:user) { should == 'psegel' }
|
128
|
+
its(:employeeid) { should == '54' }
|
129
|
+
its(:hire_date) { should == '2004-07-13' }
|
117
130
|
end
|
118
|
-
|
131
|
+
|
132
|
+
context 'the credentials hash' do
|
119
133
|
subject { last_request.env['omniauth.auth']['credentials'] }
|
134
|
+
|
120
135
|
it { should have(1).items }
|
121
|
-
|
136
|
+
|
137
|
+
its(:ticket) { should == '593af' }
|
122
138
|
end
|
123
139
|
end
|
124
140
|
|
@@ -127,22 +143,4 @@ describe OmniAuth::Strategies::CAS, :type => :strategy do
|
|
127
143
|
end
|
128
144
|
end
|
129
145
|
|
130
|
-
# unless RUBY_VERSION =~ /^1\.8\.\d$/
|
131
|
-
# describe 'GET /auth/cas/callback with a valid ticket and gzipped response from the server on ruby >1.8' do
|
132
|
-
# before do
|
133
|
-
# zipped = StringIO.new
|
134
|
-
# Zlib::GzipWriter.wrap zipped do |io|
|
135
|
-
# io.write File.read(File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'cas_success.xml'))
|
136
|
-
# end
|
137
|
-
# stub_request(:get, /^https:\/\/cas.example.org(:443)?\/serviceValidate\?([^&]+&)?ticket=593af/).
|
138
|
-
# with { |request| @request_uri = request.uri.to_s }.
|
139
|
-
# to_return(:body => zipped.string, :headers => { 'content-encoding' => 'gzip' })
|
140
|
-
# get '/auth/cas/callback?ticket=593af'
|
141
|
-
# end
|
142
|
-
#
|
143
|
-
# it 'should call through to the master app when response is gzipped' do
|
144
|
-
# last_response.body.should == 'true'
|
145
|
-
# end
|
146
|
-
# end
|
147
|
-
# end
|
148
146
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,20 +1,17 @@
|
|
1
1
|
require 'bundler/setup'
|
2
|
-
require '
|
2
|
+
require 'awesome_print'
|
3
3
|
|
4
4
|
RSpec.configure do |c|
|
5
5
|
c.filter_run focus: true
|
6
6
|
c.run_all_when_everything_filtered = true
|
7
7
|
c.treat_symbols_as_metadata_keys_with_true_values = true
|
8
|
-
c.mock_with :mocha
|
9
8
|
end
|
10
9
|
|
11
10
|
require 'simplecov'
|
12
11
|
SimpleCov.start
|
13
12
|
|
14
13
|
require 'rack/test'
|
15
|
-
# TODO: Remove this.
|
16
|
-
# https://github.com/bblimke/webmock/issues/64
|
17
|
-
# https://github.com/bblimke/webmock/commit/9d255f118a6a39d297856fa83302aca1577b2c03#commitcomment-192888
|
18
|
-
require 'rspec/expectations'
|
19
14
|
require 'webmock/rspec'
|
20
15
|
require 'omniauth-cas'
|
16
|
+
|
17
|
+
OmniAuth.config.logger = Logger.new( '/dev/null' )
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-cas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: omniauth
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 1.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.1.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: nokogiri
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,21 +37,31 @@ dependencies:
|
|
32
37
|
version: '1.5'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.5'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: addressable
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
42
52
|
- !ruby/object:Gem::Version
|
43
|
-
version: '2.
|
53
|
+
version: '2.3'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.3'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: rake
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ~>
|
@@ -54,43 +69,63 @@ dependencies:
|
|
54
69
|
version: '0.9'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0.9'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: webmock
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ~>
|
64
84
|
- !ruby/object:Gem::Version
|
65
|
-
version: 1.8.
|
85
|
+
version: 1.8.11
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.8.11
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: simplecov
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ~>
|
75
100
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.
|
101
|
+
version: 0.7.1
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.7.1
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: rspec
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ~>
|
86
116
|
- !ruby/object:Gem::Version
|
87
|
-
version: '2.
|
117
|
+
version: '2.11'
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '2.11'
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: rack-test
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ~>
|
@@ -98,21 +133,15 @@ dependencies:
|
|
98
133
|
version: '0.6'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: bourne
|
104
|
-
requirement: &2151826620 !ruby/object:Gem::Requirement
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
137
|
none: false
|
106
138
|
requirements:
|
107
139
|
- - ~>
|
108
140
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: *2151826620
|
141
|
+
version: '0.6'
|
113
142
|
- !ruby/object:Gem::Dependency
|
114
143
|
name: awesome_print
|
115
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
116
145
|
none: false
|
117
146
|
requirements:
|
118
147
|
- - ! '>='
|
@@ -120,7 +149,12 @@ dependencies:
|
|
120
149
|
version: '0'
|
121
150
|
type: :development
|
122
151
|
prerelease: false
|
123
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
124
158
|
description:
|
125
159
|
email:
|
126
160
|
- dlindahl@customink.com
|
@@ -168,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
202
|
version: '0'
|
169
203
|
requirements: []
|
170
204
|
rubyforge_project:
|
171
|
-
rubygems_version: 1.8.
|
205
|
+
rubygems_version: 1.8.24
|
172
206
|
signing_key:
|
173
207
|
specification_version: 3
|
174
208
|
summary: CAS Strategy for OmniAuth
|