omniauth-cas 0.0.7 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|