cassette 1.2.5 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -3
- data/lib/cassette.rb +27 -2
- data/lib/cassette/cache.rb +12 -22
- data/lib/cassette/client.rb +18 -9
- data/lib/cassette/client/cache.rb +1 -1
- data/lib/cassette/http/request.rb +2 -1
- data/lib/cassette/version.rb +3 -3
- data/spec/cassette/authentication/authorities_spec.rb +3 -2
- data/spec/cassette/authentication/cache_spec.rb +16 -0
- data/spec/cassette/authentication/filter_spec.rb +1 -5
- data/spec/cassette/cache_spec.rb +17 -48
- data/spec/cassette/client/cache_spec.rb +33 -1
- data/spec/cassette/client_spec.rb +66 -29
- data/spec/cassette_spec.rb +125 -0
- data/spec/config.yml +7 -5
- data/spec/spec_helper.rb +6 -0
- data/spec/support/last_execution_examples_result.txt +159 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbf74773ca3132052c30b12568d80197650617c7b0827bf9730f6e44b285f5be
|
4
|
+
data.tar.gz: eae14505d3b5162bd9efdf59d5fa34a1e2098dd50bd37cea2d7eb889ef6bbabb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc876e60912940ee6045c5fd616c85f726a9c1b418ee84da59ce718c1b689c3655a498b48f9d937276072ff5dc2294199d70cd96a92eaca62da444c58f1af611
|
7
|
+
data.tar.gz: 36294ee7a9618555e4be9b8d3dc822e98123620223da593a4bb9d1249e40bc89adae80625e3052e7c41d9cee720220c80b2a5bc30addad0f6f3538c2e4416ab0
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Cassette::Client
|
2
2
|
|
3
|
-
[![Build Status](https://travis-ci.org/locaweb/cassette.svg)](https://travis-ci.org/locaweb/cassette)
|
3
|
+
[![Build Status](https://travis-ci.org/locaweb/cassette.svg)](https://travis-ci.org/locaweb/cassette)
|
4
4
|
|
5
5
|
[![Test Coverage](https://codeclimate.com/github/locaweb/cassette/badges/coverage.svg)](https://codeclimate.com/github/locaweb/cassette/coverage)
|
6
6
|
|
@@ -25,10 +25,18 @@ $ bundle
|
|
25
25
|
Require this library and create an intializer to set its configuration:
|
26
26
|
|
27
27
|
```ruby
|
28
|
-
|
28
|
+
Cassete.config = OpenStruct.new(
|
29
|
+
username: 'user',
|
30
|
+
password: 'secret',
|
31
|
+
service: 'test-api.example.org',
|
32
|
+
base: 'https://some-cas.example.org',
|
33
|
+
base_authority: 'CASTEST',
|
34
|
+
verify_ssl: true, # If not defined, the default value will be: false.
|
35
|
+
tls_version: 'TLSv1_2' # if not defined, the default value will be: 'TLSv1'.
|
36
|
+
)
|
29
37
|
```
|
30
38
|
|
31
|
-
where config is an
|
39
|
+
where config is an OpenStruct that responds to the methods `base` for the base CAS uri, `username` and `password` if you are authenticating on other systems and `service` and `base_authority` if you are using the authentication filter to authenticate your app.
|
32
40
|
|
33
41
|
You may also set the caching backend using the .backend= module method:
|
34
42
|
|
data/lib/cassette.rb
CHANGED
@@ -14,6 +14,7 @@ require 'cassette/authentication/filter'
|
|
14
14
|
require 'faraday'
|
15
15
|
require 'forwardable'
|
16
16
|
require 'logger'
|
17
|
+
require 'ostruct'
|
17
18
|
|
18
19
|
module Cassette
|
19
20
|
extend Forwardable
|
@@ -21,7 +22,9 @@ module Cassette
|
|
21
22
|
|
22
23
|
attr_writer :config, :logger
|
23
24
|
|
24
|
-
DEFAULT_TIMEOUT
|
25
|
+
DEFAULT_TIMEOUT = 10
|
26
|
+
DEFAULT_TLS_VERSION = 'TLSv1_2'.freeze
|
27
|
+
DEFAULT_VERIFY_SSL = false
|
25
28
|
|
26
29
|
def logger
|
27
30
|
@logger ||= begin
|
@@ -34,7 +37,29 @@ module Cassette
|
|
34
37
|
end
|
35
38
|
|
36
39
|
def config
|
37
|
-
@config
|
40
|
+
@config = OpenStruct.new unless defined?(@config)
|
41
|
+
|
42
|
+
@config.tls_version = DEFAULT_TLS_VERSION if @config.tls_version.nil?
|
43
|
+
|
44
|
+
@config.verify_ssl = DEFAULT_VERIFY_SSL if @config.verify_ssl.nil?
|
45
|
+
|
46
|
+
@config
|
47
|
+
end
|
48
|
+
|
49
|
+
def cache_backend
|
50
|
+
@cache_backend ||= begin
|
51
|
+
if defined?(::Rails) && ::Rails.cache
|
52
|
+
::Rails.cache
|
53
|
+
elsif defined?(::ActiveSupport::Cache::MemoryStore)
|
54
|
+
ActiveSupport::Cache::MemoryStore.new
|
55
|
+
else
|
56
|
+
Cache::NullStore.new
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.cache_backend=(cache_backend)
|
62
|
+
@cache_backend = cache_backend
|
38
63
|
end
|
39
64
|
|
40
65
|
def_delegators Http::Request, :post
|
data/lib/cassette/cache.rb
CHANGED
@@ -8,28 +8,6 @@ end
|
|
8
8
|
|
9
9
|
module Cassette
|
10
10
|
module Cache
|
11
|
-
def self.backend
|
12
|
-
@backend ||= begin
|
13
|
-
if defined?(::Rails) && ::Rails.cache
|
14
|
-
::Rails.cache
|
15
|
-
elsif defined?(::ActiveSupport::Cache::MemoryStore)
|
16
|
-
ActiveSupport::Cache::MemoryStore.new
|
17
|
-
else
|
18
|
-
NullStore.new
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.backend=(backend)
|
24
|
-
@backend = backend
|
25
|
-
end
|
26
|
-
|
27
|
-
def backend
|
28
|
-
@backend ||= Cassette::Cache.backend
|
29
|
-
end
|
30
|
-
|
31
|
-
attr_writer :backend
|
32
|
-
|
33
11
|
def uses_key(key)
|
34
12
|
"uses:#{key}"
|
35
13
|
end
|
@@ -50,5 +28,17 @@ module Cassette
|
|
50
28
|
|
51
29
|
backend.fetch(key, options, &block)
|
52
30
|
end
|
31
|
+
|
32
|
+
def backend
|
33
|
+
Cassette.cache_backend
|
34
|
+
end
|
35
|
+
|
36
|
+
def backend=(backend)
|
37
|
+
Cassette.cache_backend = backend
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.backend=(backend)
|
41
|
+
::Cassette.cache_backend = backend
|
42
|
+
end
|
53
43
|
end
|
54
44
|
end
|
data/lib/cassette/client.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
1
|
module Cassette
|
4
2
|
class Client
|
5
3
|
def self.method_missing(name, *args)
|
@@ -20,12 +18,16 @@ module Cassette
|
|
20
18
|
|
21
19
|
def tgt(usr, pwd, force = false)
|
22
20
|
logger.info 'Requesting TGT'
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
cached = true
|
22
|
+
|
23
|
+
tgt = cache.fetch_tgt(force: force) do
|
24
|
+
cached = false
|
25
|
+
request_new_tgt(usr, pwd)
|
28
26
|
end
|
27
|
+
|
28
|
+
logger.info("TGT cache hit, value: '#{tgt}'") if cached
|
29
|
+
|
30
|
+
tgt
|
29
31
|
end
|
30
32
|
|
31
33
|
def st(tgt_param, service, force = false)
|
@@ -49,7 +51,7 @@ module Cassette
|
|
49
51
|
attr_accessor :cache, :logger, :http, :config
|
50
52
|
|
51
53
|
def st_with_retry(user, pass, service, retrying = false)
|
52
|
-
st(->{ tgt(user, pass, retrying) }, service)
|
54
|
+
st(-> { tgt(user, pass, retrying) }, service)
|
53
55
|
rescue Cassette::Errors::NotFound => e
|
54
56
|
raise e if retrying
|
55
57
|
|
@@ -59,7 +61,14 @@ module Cassette
|
|
59
61
|
end
|
60
62
|
|
61
63
|
def tickets_path
|
62
|
-
|
64
|
+
'/v1/tickets'
|
65
|
+
end
|
66
|
+
|
67
|
+
def request_new_tgt(usr, pwd)
|
68
|
+
response = http.post(tickets_path, username: usr, password: pwd)
|
69
|
+
tgt = Regexp.last_match(1) if response.headers['Location'] =~ %r{tickets/(.*)}
|
70
|
+
logger.info "TGT is #{tgt}"
|
71
|
+
tgt
|
63
72
|
end
|
64
73
|
end
|
65
74
|
end
|
@@ -16,7 +16,7 @@ module Cassette
|
|
16
16
|
def fetch_tgt(options = {}, &_block)
|
17
17
|
options = { expires_in: 4 * 3600, max_uses: 5000, force: false }.merge(options)
|
18
18
|
fetch('Cassette::Client.tgt', options) do
|
19
|
-
logger.info
|
19
|
+
logger.info('TGT cache miss')
|
20
20
|
yield
|
21
21
|
end
|
22
22
|
end
|
@@ -36,7 +36,8 @@ module Cassette
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def request
|
39
|
-
@request ||= Faraday.new(url: config.base, ssl:
|
39
|
+
@request ||= Faraday.new(url: config.base, ssl:
|
40
|
+
{ verify: config.verify_ssl, version: config.tls_version }) do |conn|
|
40
41
|
conn.adapter Faraday.default_adapter
|
41
42
|
end
|
42
43
|
end
|
data/lib/cassette/version.rb
CHANGED
@@ -65,8 +65,9 @@ describe Cassette::Authentication::Authorities do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
context 'with authentication disabled' do
|
68
|
-
before
|
69
|
-
|
68
|
+
before do
|
69
|
+
stub_const('ENV', ENV.to_hash.merge('NOAUTH' => 'true'))
|
70
|
+
end
|
70
71
|
subject { Cassette::Authentication::Authorities.new('[]') }
|
71
72
|
|
72
73
|
it '#has_role? returns true for every role' do
|
@@ -40,5 +40,21 @@ describe Cassette::Authentication::Cache do
|
|
40
40
|
it { expect(call_with_other_service).to eq(2) }
|
41
41
|
end
|
42
42
|
end
|
43
|
+
|
44
|
+
it 'uses the cache store set in configuration' do
|
45
|
+
# setup
|
46
|
+
global_cache = double('cache_store')
|
47
|
+
Cassette.cache_backend = global_cache
|
48
|
+
|
49
|
+
logger = Logger.new('/dev/null')
|
50
|
+
|
51
|
+
# exercise
|
52
|
+
auth_cache = described_class.new(logger)
|
53
|
+
|
54
|
+
expect(auth_cache.backend).to eq(global_cache)
|
55
|
+
|
56
|
+
# tear down
|
57
|
+
Cassette.cache_backend = nil
|
58
|
+
end
|
43
59
|
end
|
44
60
|
end
|
data/spec/cassette/cache_spec.rb
CHANGED
@@ -5,62 +5,31 @@ describe Cassette::Cache do
|
|
5
5
|
cached()
|
6
6
|
end
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
describe '#backend' do
|
9
|
+
it 'returns the global cache' do
|
10
|
+
# setup
|
11
|
+
global_cache = double('cache_store')
|
12
|
+
Cassette.cache_backend = global_cache
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
rails = double('Rails')
|
15
|
-
cache = double('cache_backend')
|
16
|
-
allow(rails).to receive(:cache).and_return(cache)
|
17
|
-
stub_const('Rails', rails)
|
14
|
+
# exercise and verify
|
15
|
+
expect(subject.backend).to eql(global_cache)
|
18
16
|
|
19
|
-
|
17
|
+
# tear down
|
18
|
+
Cassette.cache_backend = nil
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
23
22
|
describe '.backend=' do
|
24
|
-
it '
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
described_class.backend = backend
|
29
|
-
|
30
|
-
new_instance = cached()
|
31
|
-
expect(new_instance.backend).to eq(backend)
|
32
|
-
expect(new_instance.backend).not_to eq(subject.backend)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'sets the default backend' do
|
36
|
-
backend = double('backend')
|
37
|
-
expect(described_class.backend).not_to eq(backend)
|
38
|
-
|
39
|
-
described_class.backend = backend
|
40
|
-
|
41
|
-
expect(described_class.backend).to eq(backend)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe '#backend' do
|
46
|
-
before { subject.backend = nil }
|
47
|
-
after { subject.backend = nil }
|
48
|
-
|
49
|
-
it 'sets the backend' do
|
50
|
-
backend = double('Backend')
|
51
|
-
|
52
|
-
subject.backend = backend
|
53
|
-
|
54
|
-
expect(subject.backend).to eql(backend)
|
55
|
-
end
|
23
|
+
it 'sets the cache' do
|
24
|
+
# setup
|
25
|
+
global_cache = double('cache_store')
|
26
|
+
described_class.backend = global_cache
|
56
27
|
|
57
|
-
|
58
|
-
|
59
|
-
cache = double('cache_backend')
|
60
|
-
allow(rails).to receive(:cache).and_return(cache)
|
61
|
-
stub_const('Rails', rails)
|
28
|
+
# exercise and verify
|
29
|
+
expect(subject.backend).to eql(global_cache)
|
62
30
|
|
63
|
-
|
31
|
+
# tear down
|
32
|
+
Cassette.cache_backend = nil
|
64
33
|
end
|
65
34
|
end
|
66
35
|
|
@@ -3,5 +3,37 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
describe Cassette::Client::Cache do
|
6
|
-
|
6
|
+
it 'uses the cache store set in configuration' do
|
7
|
+
# setup
|
8
|
+
global_cache = double('cache_store')
|
9
|
+
Cassette.cache_backend = global_cache
|
10
|
+
|
11
|
+
logger = Logger.new('/dev/null')
|
12
|
+
|
13
|
+
# exercise
|
14
|
+
client_cache = described_class.new(logger)
|
15
|
+
|
16
|
+
expect(client_cache.backend).to eq(global_cache)
|
17
|
+
|
18
|
+
# tear down
|
19
|
+
Cassette.cache_backend = nil
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '.backend=' do
|
23
|
+
it 'sets the cache' do
|
24
|
+
# setup
|
25
|
+
global_cache = double('cache_store')
|
26
|
+
logger = Logger.new('/dev/null')
|
27
|
+
|
28
|
+
# exercise
|
29
|
+
Cassette::Client.cache.backend = global_cache
|
30
|
+
|
31
|
+
# verify
|
32
|
+
client_cache = described_class.new(logger)
|
33
|
+
expect(client_cache.backend).to eql(global_cache)
|
34
|
+
|
35
|
+
# tear down
|
36
|
+
Cassette.cache_backend = nil
|
37
|
+
end
|
38
|
+
end
|
7
39
|
end
|
@@ -63,50 +63,87 @@ describe Cassette::Client do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
context 'when tgt is not cached' do
|
66
|
-
|
67
|
-
|
66
|
+
after do
|
67
|
+
Cassette.logger = Logger.new('/dev/null')
|
68
|
+
end
|
68
69
|
|
69
|
-
|
70
|
-
|
71
|
-
expect(opts[:force]).to eq false
|
72
|
-
tgt
|
73
|
-
end
|
70
|
+
it 'returns the tgt and logs correctly' do
|
71
|
+
Cassette::Client.cache.backend.clear
|
74
72
|
|
75
|
-
|
76
|
-
|
73
|
+
tgt = 'TGT-Something-example'
|
74
|
+
response = double('response', headers: {'Location' => "tickets/#{tgt}"})
|
75
|
+
allow(http).to receive(:post).and_return(response)
|
76
|
+
|
77
|
+
logger = spy(:logger)
|
78
|
+
Cassette.logger = logger
|
77
79
|
|
78
|
-
|
80
|
+
client = Cassette::Client.new(http_client: http)
|
81
|
+
|
82
|
+
# exercise
|
83
|
+
result = client.tgt('user', 'pass')
|
84
|
+
|
85
|
+
# verify
|
86
|
+
expect(result).to eq(tgt)
|
87
|
+
expect(logger).to have_received(:info).with("TGT cache miss").ordered
|
88
|
+
expect(logger).to have_received(:info).with("TGT is #{tgt}").ordered
|
89
|
+
end
|
79
90
|
end
|
80
91
|
|
81
92
|
context 'with a cached tgt' do
|
82
|
-
|
93
|
+
after do
|
94
|
+
Cassette.logger = Logger.new('/dev/null')
|
95
|
+
end
|
83
96
|
|
84
|
-
|
85
|
-
|
86
|
-
.and_return(tgt)
|
97
|
+
it 'returns the tgt from the cache and logs correctly' do
|
98
|
+
Cassette::Client.cache.backend.clear
|
87
99
|
|
88
|
-
|
89
|
-
|
100
|
+
tgt = 'TGT-Something-example'
|
101
|
+
response = double('response', headers: {'Location' => "tickets/#{tgt}"})
|
102
|
+
allow(http).to receive(:post).and_return(response)
|
90
103
|
|
91
|
-
|
92
|
-
|
104
|
+
# this first call is to set the cache
|
105
|
+
client = Cassette::Client.new(http_client: http)
|
106
|
+
result = client.tgt('user', 'pass')
|
93
107
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
end
|
98
|
-
end
|
108
|
+
logger = spy(:logger)
|
109
|
+
Cassette.logger = logger
|
110
|
+
client = Cassette::Client.new(http_client: http)
|
99
111
|
|
100
|
-
|
101
|
-
|
112
|
+
# exercise
|
113
|
+
result = client.tgt('user', 'pass')
|
102
114
|
|
103
|
-
|
115
|
+
# verify
|
116
|
+
expect(result).to eq(tgt)
|
117
|
+
expect(logger).to have_received(:info).with("TGT cache hit, value: '#{tgt}'")
|
104
118
|
end
|
105
119
|
|
106
|
-
|
107
|
-
|
120
|
+
it 'generates another tgt when the param force is true' do
|
121
|
+
Cassette::Client.cache.backend.clear
|
122
|
+
|
123
|
+
tgt = 'TGT-Something-example'
|
124
|
+
response = double('response', headers: {'Location' => "tickets/#{tgt}"})
|
125
|
+
allow(http).to receive(:post).and_return(response)
|
126
|
+
|
127
|
+
# this first call is to set the cache
|
128
|
+
client = Cassette::Client.new(http_client: http)
|
129
|
+
result = client.tgt('user', 'pass')
|
130
|
+
|
131
|
+
tgt2 = 'TGT2-Something-example'
|
132
|
+
response = double('response', headers: {'Location' => "tickets/#{tgt2}"})
|
133
|
+
allow(http).to receive(:post).and_return(response)
|
134
|
+
|
135
|
+
logger = spy(:logger)
|
136
|
+
Cassette.logger = logger
|
137
|
+
client = Cassette::Client.new(http_client: http)
|
138
|
+
|
139
|
+
# exercise
|
140
|
+
force = true
|
141
|
+
result = client.tgt('user', 'pass', force)
|
108
142
|
|
109
|
-
|
143
|
+
# verify
|
144
|
+
expect(result).to eq(tgt2)
|
145
|
+
expect(logger).to have_received(:info).with("TGT cache miss").ordered
|
146
|
+
expect(logger).to have_received(:info).with("TGT is #{tgt2}").ordered
|
110
147
|
end
|
111
148
|
end
|
112
149
|
end
|
data/spec/cassette_spec.rb
CHANGED
@@ -7,6 +7,78 @@ describe Cassette do
|
|
7
7
|
Cassette.logger = original_logger
|
8
8
|
end
|
9
9
|
|
10
|
+
describe '.config' do
|
11
|
+
it 'defines Cassette initial configuration based on a OpenStruct' do
|
12
|
+
|
13
|
+
config = OpenStruct.new(
|
14
|
+
YAML.load_file('spec/config.yml')
|
15
|
+
)
|
16
|
+
|
17
|
+
Cassette.config = config
|
18
|
+
|
19
|
+
expect(Cassette.config)
|
20
|
+
.to eq(config)
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'when tls_version was not specified' do
|
24
|
+
it 'uses default TLS version: TLSv1_2' do
|
25
|
+
config = OpenStruct.new(
|
26
|
+
YAML.load_file('spec/config.yml')
|
27
|
+
)
|
28
|
+
|
29
|
+
# Removing tls_version field
|
30
|
+
config.delete_field(:tls_version)
|
31
|
+
|
32
|
+
Cassette.config = config
|
33
|
+
|
34
|
+
expect(Cassette.config.tls_version)
|
35
|
+
.to eq('TLSv1_2')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when tls_version is specified' do
|
40
|
+
it 'uses this version' do
|
41
|
+
config = OpenStruct.new(
|
42
|
+
YAML.load_file('spec/config.yml')
|
43
|
+
)
|
44
|
+
|
45
|
+
Cassette.config = config
|
46
|
+
|
47
|
+
expect(Cassette.config.tls_version)
|
48
|
+
.to eq('TLSv1_2')
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context 'when verify_ssl was not specified' do
|
53
|
+
it 'uses default verify_ssl value: false' do
|
54
|
+
config = OpenStruct.new(
|
55
|
+
YAML.load_file('spec/config.yml')
|
56
|
+
)
|
57
|
+
|
58
|
+
# Removing verify_ssl field
|
59
|
+
config.delete_field(:verify_ssl)
|
60
|
+
|
61
|
+
Cassette.config = config
|
62
|
+
|
63
|
+
expect(Cassette.config.verify_ssl)
|
64
|
+
.to be false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'when verify_ssl is specified' do
|
69
|
+
it 'uses this value' do
|
70
|
+
config = OpenStruct.new(
|
71
|
+
YAML.load_file('spec/config.yml')
|
72
|
+
)
|
73
|
+
|
74
|
+
Cassette.config = config
|
75
|
+
|
76
|
+
expect(Cassette.config.verify_ssl)
|
77
|
+
.to be true
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
10
82
|
describe '.logger' do
|
11
83
|
it 'returns a default instance' do
|
12
84
|
expect(Cassette.logger).not_to be_nil
|
@@ -33,4 +105,57 @@ describe Cassette do
|
|
33
105
|
end
|
34
106
|
end
|
35
107
|
end
|
108
|
+
|
109
|
+
describe '.cache_backend' do
|
110
|
+
context 'when the cache_backend is already set' do
|
111
|
+
it 'returns the cache_backend set' do
|
112
|
+
new_cache = double('cache_backend')
|
113
|
+
described_class.cache_backend = new_cache
|
114
|
+
|
115
|
+
# exercise and verify
|
116
|
+
expect(described_class.cache_backend).to eq(new_cache)
|
117
|
+
|
118
|
+
# tear down
|
119
|
+
described_class.cache_backend = nil
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
context 'when the cache_backend is not set' do
|
124
|
+
it 'returns Rails.cache if set' do
|
125
|
+
described_class.cache_backend = nil
|
126
|
+
rails_cache = double('cache')
|
127
|
+
rails = double('Rails')
|
128
|
+
allow(rails).to receive(:cache).and_return(rails_cache)
|
129
|
+
stub_const('Rails', rails)
|
130
|
+
|
131
|
+
# exercise and verify
|
132
|
+
expect(described_class.cache_backend).to eq(rails_cache)
|
133
|
+
|
134
|
+
# tear down
|
135
|
+
described_class.cache_backend = nil
|
136
|
+
end
|
137
|
+
|
138
|
+
it 'returns MemoryStore if Rails.cache not set' do
|
139
|
+
described_class.cache_backend = nil
|
140
|
+
|
141
|
+
# exercise and verify
|
142
|
+
expect(described_class.cache_backend).to be_a(ActiveSupport::Cache::MemoryStore)
|
143
|
+
|
144
|
+
# tear down
|
145
|
+
described_class.cache_backend = nil
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'returns NullStore if Rails.cache and MemoryStore are not set' do
|
149
|
+
described_class.cache_backend = nil
|
150
|
+
hide_const('ActiveSupport::Cache::MemoryStore')
|
151
|
+
require 'cassette/cache/null_store'
|
152
|
+
|
153
|
+
# exercise and verify
|
154
|
+
expect(described_class.cache_backend).to be_a(Cassette::Cache::NullStore)
|
155
|
+
|
156
|
+
# tear down
|
157
|
+
described_class.cache_backend = nil
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
36
161
|
end
|
data/spec/config.yml
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
username:
|
2
|
-
password:
|
3
|
-
service:
|
4
|
-
base:
|
5
|
-
base_authority:
|
1
|
+
username: 'user'
|
2
|
+
password: 'secret'
|
3
|
+
service: 'test-api.example.org'
|
4
|
+
base: 'https://some-cas.example.org'
|
5
|
+
base_authority: 'CASTEST'
|
6
|
+
verify_ssl: true
|
7
|
+
tls_version: 'TLSv1_2'
|
data/spec/spec_helper.rb
CHANGED
@@ -5,6 +5,9 @@ require 'yaml'
|
|
5
5
|
require 'webmock/rspec'
|
6
6
|
require 'rspec/its'
|
7
7
|
require 'faker'
|
8
|
+
if RUBY_VERSION >= '2.3.0'
|
9
|
+
require 'pry-byebug'
|
10
|
+
end
|
8
11
|
|
9
12
|
Dir['spec/support/**/*.rb'].each { |f| load f }
|
10
13
|
|
@@ -17,6 +20,9 @@ end
|
|
17
20
|
RSpec.configure do |config|
|
18
21
|
config.mock_framework = :rspec
|
19
22
|
config.include Fixtures
|
23
|
+
last_execution_result_file = 'spec/support/last_execution_examples_result.txt'
|
24
|
+
config.example_status_persistence_file_path = last_execution_result_file
|
25
|
+
config.order = 'random'
|
20
26
|
end
|
21
27
|
|
22
28
|
SimpleCov.start 'gem' do
|
@@ -0,0 +1,159 @@
|
|
1
|
+
example_id | status | run_time |
|
2
|
+
-------------------------------------------------------------- | ------ | --------------- |
|
3
|
+
./spec/cassette/authentication/authorities_spec.rb[1:1:1] | passed | 0.00041 seconds |
|
4
|
+
./spec/cassette/authentication/authorities_spec.rb[1:1:2] | passed | 0.00035 seconds |
|
5
|
+
./spec/cassette/authentication/authorities_spec.rb[1:1:3] | passed | 0.0003 seconds |
|
6
|
+
./spec/cassette/authentication/authorities_spec.rb[1:2:1] | passed | 0.00029 seconds |
|
7
|
+
./spec/cassette/authentication/authorities_spec.rb[1:2:2:1] | passed | 0.00059 seconds |
|
8
|
+
./spec/cassette/authentication/authorities_spec.rb[1:2:2:2] | passed | 0.00198 seconds |
|
9
|
+
./spec/cassette/authentication/authorities_spec.rb[1:3:1] | passed | 0.00018 seconds |
|
10
|
+
./spec/cassette/authentication/authorities_spec.rb[1:3:2] | passed | 0.0005 seconds |
|
11
|
+
./spec/cassette/authentication/authorities_spec.rb[1:3:3] | passed | 0.00053 seconds |
|
12
|
+
./spec/cassette/authentication/authorities_spec.rb[1:3:4] | passed | 0.00043 seconds |
|
13
|
+
./spec/cassette/authentication/authorities_spec.rb[1:4:1] | passed | 0.00036 seconds |
|
14
|
+
./spec/cassette/authentication/authorities_spec.rb[1:4:2] | passed | 0.00052 seconds |
|
15
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:1] | passed | 0.00108 seconds |
|
16
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:2:1] | passed | 0.00051 seconds |
|
17
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:2:2] | passed | 0.00119 seconds |
|
18
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:2:3:1] | passed | 0.00063 seconds |
|
19
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:3] | passed | 0.00074 seconds |
|
20
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:1:1:1] | passed | 0.00122 seconds |
|
21
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:1:1:2] | passed | 0.00085 seconds |
|
22
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:1:2] | passed | 0.00141 seconds |
|
23
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:1:3] | passed | 0.00135 seconds |
|
24
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:2:1:1] | passed | 0.00106 seconds |
|
25
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:2:1:2] | passed | 0.00108 seconds |
|
26
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:2:2] | passed | 0.00245 seconds |
|
27
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:2:3] | passed | 0.00125 seconds |
|
28
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:1:1:1] | passed | 0.00078 seconds |
|
29
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:1:1:2] | passed | 0.00135 seconds |
|
30
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:2:1:1] | passed | 0.00081 seconds |
|
31
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:2:1:2] | passed | 0.001 seconds |
|
32
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:3:1:1] | passed | 0.00164 seconds |
|
33
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:3:1:2] | passed | 0.00078 seconds |
|
34
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:2:1] | passed | 0.00099 seconds |
|
35
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:3:1:1] | passed | 0.00086 seconds |
|
36
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:3:2:1] | passed | 0.00099 seconds |
|
37
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:3:3:1] | passed | 0.00096 seconds |
|
38
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:3:4:1] | passed | 0.00109 seconds |
|
39
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:4:1:1:1] | passed | 0.0049 seconds |
|
40
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:4:1:2:1] | passed | 0.00461 seconds |
|
41
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:4:1:3:1] | passed | 0.0052 seconds |
|
42
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:1:1:1] | passed | 0.00238 seconds |
|
43
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:1:1:2] | passed | 0.00221 seconds |
|
44
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:1:2] | passed | 0.00258 seconds |
|
45
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:1:3] | passed | 0.00333 seconds |
|
46
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:2:1:1] | passed | 0.0011 seconds |
|
47
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:2:1:2] | passed | 0.00159 seconds |
|
48
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:2:2] | passed | 0.00241 seconds |
|
49
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:2:3] | passed | 0.00261 seconds |
|
50
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:1:1:1] | passed | 0.00126 seconds |
|
51
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:1:1:2] | passed | 0.00109 seconds |
|
52
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:2:1:1] | passed | 0.00935 seconds |
|
53
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:2:1:2] | passed | 0.00226 seconds |
|
54
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:3:1:1] | passed | 0.00433 seconds |
|
55
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:3:1:2] | passed | 0.00664 seconds |
|
56
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:2:1] | passed | 0.00106 seconds |
|
57
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:3:1:1] | passed | 0.00104 seconds |
|
58
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:3:2:1] | passed | 0.0011 seconds |
|
59
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:3:3:1] | passed | 0.00094 seconds |
|
60
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:3:4:1] | passed | 0.001 seconds |
|
61
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:4:1:1:1] | passed | 0.00574 seconds |
|
62
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:4:1:2:1] | passed | 0.00621 seconds |
|
63
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:4:1:3:1] | passed | 0.0071 seconds |
|
64
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:1:1] | passed | 0.00052 seconds |
|
65
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:2:1] | passed | 0.0009 seconds |
|
66
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:3:1] | passed | 0.00086 seconds |
|
67
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:4:1] | passed | 0.00053 seconds |
|
68
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:5] | passed | 0.00066 seconds |
|
69
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:6] | passed | 0.45881 seconds |
|
70
|
+
./spec/cassette/authentication/user_spec.rb[1:1:1:1] | passed | 0.00076 seconds |
|
71
|
+
./spec/cassette/authentication/user_spec.rb[1:1:2:1] | passed | 0.00089 seconds |
|
72
|
+
./spec/cassette/authentication/user_spec.rb[1:2:1] | passed | 0.00023 seconds |
|
73
|
+
./spec/cassette/authentication/user_spec.rb[1:2:2] | passed | 0.00052 seconds |
|
74
|
+
./spec/cassette/authentication/user_spec.rb[1:2:3] | passed | 0.00067 seconds |
|
75
|
+
./spec/cassette/authentication/user_spec.rb[1:3:1:1] | passed | 0.00043 seconds |
|
76
|
+
./spec/cassette/authentication/user_spec.rb[1:3:2:1] | passed | 0.0008 seconds |
|
77
|
+
./spec/cassette/authentication_spec.rb[1:1:1:1] | passed | 0.00104 seconds |
|
78
|
+
./spec/cassette/authentication_spec.rb[1:1:1:2] | passed | 0.00082 seconds |
|
79
|
+
./spec/cassette/authentication_spec.rb[1:1:1:3] | passed | 0.00101 seconds |
|
80
|
+
./spec/cassette/authentication_spec.rb[1:1:2:1] | passed | 0.00111 seconds |
|
81
|
+
./spec/cassette/authentication_spec.rb[1:1:2:2:1] | passed | 0.01021 seconds |
|
82
|
+
./spec/cassette/authentication_spec.rb[1:1:2:3:1] | passed | 0.01165 seconds |
|
83
|
+
./spec/cassette/authentication_spec.rb[1:2:1] | passed | 0.00039 seconds |
|
84
|
+
./spec/cassette/authentication_spec.rb[1:2:2] | passed | 0.00072 seconds |
|
85
|
+
./spec/cassette/authentication_spec.rb[1:2:3] | passed | 0.00086 seconds |
|
86
|
+
./spec/cassette/authentication_spec.rb[1:2:4] | passed | 0.00105 seconds |
|
87
|
+
./spec/cassette/cache/null_store_spec.rb[1:1:1] | passed | 0.00016 seconds |
|
88
|
+
./spec/cassette/cache/null_store_spec.rb[1:1:2] | passed | 0.00018 seconds |
|
89
|
+
./spec/cassette/cache/null_store_spec.rb[1:2:1] | passed | 0.00014 seconds |
|
90
|
+
./spec/cassette/cache/null_store_spec.rb[1:3:1] | passed | 0.00013 seconds |
|
91
|
+
./spec/cassette/cache/null_store_spec.rb[1:3:2] | passed | 0.00065 seconds |
|
92
|
+
./spec/cassette/cache/null_store_spec.rb[1:3:3] | passed | 0.00055 seconds |
|
93
|
+
./spec/cassette/cache/null_store_spec.rb[1:4:1] | passed | 0.00022 seconds |
|
94
|
+
./spec/cassette/cache/null_store_spec.rb[1:4:2] | passed | 0.00055 seconds |
|
95
|
+
./spec/cassette/cache/null_store_spec.rb[1:4:3] | passed | 0.00055 seconds |
|
96
|
+
./spec/cassette/cache/null_store_spec.rb[1:4:4] | passed | 0.00056 seconds |
|
97
|
+
./spec/cassette/cache/null_store_spec.rb[1:5:1] | passed | 0.00015 seconds |
|
98
|
+
./spec/cassette/cache/null_store_spec.rb[1:5:2] | passed | 0.00043 seconds |
|
99
|
+
./spec/cassette/cache_spec.rb[1:1:1] | passed | 0.00023 seconds |
|
100
|
+
./spec/cassette/cache_spec.rb[1:2:1] | passed | 0.00119 seconds |
|
101
|
+
./spec/cassette/cache_spec.rb[1:3] | passed | 0.01158 seconds |
|
102
|
+
./spec/cassette/client/cache_spec.rb[1:1] | passed | 0.00153 seconds |
|
103
|
+
./spec/cassette/client_spec.rb[1:1:1] | passed | 0.00052 seconds |
|
104
|
+
./spec/cassette/client_spec.rb[1:1:2] | passed | 0.0005 seconds |
|
105
|
+
./spec/cassette/client_spec.rb[1:2:1:1] | passed | 0.00108 seconds |
|
106
|
+
./spec/cassette/client_spec.rb[1:2:1:2] | passed | 0.00096 seconds |
|
107
|
+
./spec/cassette/client_spec.rb[1:2:1:3] | passed | 0.00102 seconds |
|
108
|
+
./spec/cassette/client_spec.rb[1:2:2:1] | passed | 0.00076 seconds |
|
109
|
+
./spec/cassette/client_spec.rb[1:2:3:1:1] | passed | 0.00082 seconds |
|
110
|
+
./spec/cassette/client_spec.rb[1:2:3:1:2] | passed | 0.00083 seconds |
|
111
|
+
./spec/cassette/client_spec.rb[1:2:3:2:1] | passed | 0.00088 seconds |
|
112
|
+
./spec/cassette/client_spec.rb[1:2:3:2:2] | passed | 0.00084 seconds |
|
113
|
+
./spec/cassette/client_spec.rb[1:3:1:1:1] | passed | 0.00123 seconds |
|
114
|
+
./spec/cassette/client_spec.rb[1:3:1:1:2] | passed | 0.00105 seconds |
|
115
|
+
./spec/cassette/client_spec.rb[1:3:1:1:3] | passed | 0.0009 seconds |
|
116
|
+
./spec/cassette/client_spec.rb[1:3:2:1:1] | passed | 0.00135 seconds |
|
117
|
+
./spec/cassette/client_spec.rb[1:3:2:1:2] | passed | 0.00109 seconds |
|
118
|
+
./spec/cassette/client_spec.rb[1:3:2:1:3] | passed | 0.00121 seconds |
|
119
|
+
./spec/cassette/client_spec.rb[1:3:3:1:1] | passed | 0.00069 seconds |
|
120
|
+
./spec/cassette/client_spec.rb[1:3:3:1:2] | passed | 0.0007 seconds |
|
121
|
+
./spec/cassette/client_spec.rb[1:3:3:2:1] | passed | 0.0007 seconds |
|
122
|
+
./spec/cassette/client_spec.rb[1:3:3:2:2] | passed | 0.00079 seconds |
|
123
|
+
./spec/cassette/client_spec.rb[1:4:1:1] | passed | 0.0018 seconds |
|
124
|
+
./spec/cassette/client_spec.rb[1:4:1:2] | passed | 0.00161 seconds |
|
125
|
+
./spec/cassette/client_spec.rb[1:4:1:3] | passed | 0.00168 seconds |
|
126
|
+
./spec/cassette/client_spec.rb[1:4:2:1] | passed | 0.00128 seconds |
|
127
|
+
./spec/cassette/client_spec.rb[1:4:2:2] | passed | 0.00131 seconds |
|
128
|
+
./spec/cassette/client_spec.rb[1:4:3:1] | passed | 0.00085 seconds |
|
129
|
+
./spec/cassette/client_spec.rb[1:4:4:1] | passed | 0.00227 seconds |
|
130
|
+
./spec/cassette/client_spec.rb[1:4:4:2] | passed | 0.00182 seconds |
|
131
|
+
./spec/cassette/client_spec.rb[1:4:4:3] | passed | 0.00237 seconds |
|
132
|
+
./spec/cassette/client_spec.rb[1:4:4:4] | passed | 0.0022 seconds |
|
133
|
+
./spec/cassette/client_spec.rb[1:4:4:5] | passed | 0.00182 seconds |
|
134
|
+
./spec/cassette/client_spec.rb[1:4:4:6] | passed | 0.0023 seconds |
|
135
|
+
./spec/cassette/errors_spec.rb[1:1:1:1] | passed | 0.00025 seconds |
|
136
|
+
./spec/cassette/errors_spec.rb[1:2:1] | passed | 0.0006 seconds |
|
137
|
+
./spec/cassette/errors_spec.rb[1:2:2] | passed | 0.00026 seconds |
|
138
|
+
./spec/cassette/http/request_spec.rb[1:1:1] | passed | 0.00706 seconds |
|
139
|
+
./spec/cassette/http/request_spec.rb[1:1:2] | passed | 0.01144 seconds |
|
140
|
+
./spec/cassette/http/request_spec.rb[1:1:3:1] | passed | 0.00924 seconds |
|
141
|
+
./spec/cassette/http/ticket_response_spec.rb[1:1:1] | passed | 0.00656 seconds |
|
142
|
+
./spec/cassette/http/ticket_response_spec.rb[1:1:2:1] | passed | 0.00883 seconds |
|
143
|
+
./spec/cassette/http/ticket_response_spec.rb[1:2:1] | passed | 0.0093 seconds |
|
144
|
+
./spec/cassette/http/ticket_response_spec.rb[1:2:2:1] | passed | 0.00564 seconds |
|
145
|
+
./spec/cassette/http/ticket_response_spec.rb[1:3:1] | passed | 0.00688 seconds |
|
146
|
+
./spec/cassette/http/ticket_response_spec.rb[1:3:2:1] | passed | 0.00685 seconds |
|
147
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:1:1] | passed | 0.00208 seconds |
|
148
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:1:2:1] | passed | 0.00141 seconds |
|
149
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:1:3:1] | passed | 0.00186 seconds |
|
150
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:2:1] | passed | 0.00104 seconds |
|
151
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:2:2:1] | passed | 0.00093 seconds |
|
152
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:2:3:1] | passed | 0.00103 seconds |
|
153
|
+
./spec/cassette_spec.rb[1:1:1] | passed | 0.00036 seconds |
|
154
|
+
./spec/cassette_spec.rb[1:1:2] | passed | 0.00057 seconds |
|
155
|
+
./spec/cassette_spec.rb[1:2:1] | passed | 0.0002 seconds |
|
156
|
+
./spec/cassette_spec.rb[1:3:1:1] | passed | 0.00028 seconds |
|
157
|
+
./spec/cassette_spec.rb[1:3:2:1] | passed | 0.00063 seconds |
|
158
|
+
./spec/cassette_spec.rb[1:3:2:2] | passed | 0.00179 seconds |
|
159
|
+
./spec/cassette_spec.rb[1:3:2:3] | passed | 0.00048 seconds |
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cassette
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricardo Hermida Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name: pry
|
98
|
+
name: pry-byebug
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -272,6 +272,7 @@ files:
|
|
272
272
|
- spec/integration/cas/client_spec.rb
|
273
273
|
- spec/spec_helper.rb
|
274
274
|
- spec/support/controllers/controller_mock.rb
|
275
|
+
- spec/support/last_execution_examples_result.txt
|
275
276
|
homepage: http://github.com/locaweb/cassette
|
276
277
|
licenses: []
|
277
278
|
metadata: {}
|
@@ -316,3 +317,4 @@ test_files:
|
|
316
317
|
- spec/integration/cas/client_spec.rb
|
317
318
|
- spec/spec_helper.rb
|
318
319
|
- spec/support/controllers/controller_mock.rb
|
320
|
+
- spec/support/last_execution_examples_result.txt
|