vault-rails 0.3.1 → 0.7.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 +5 -5
- data/README.md +144 -11
- data/Rakefile +5 -2
- data/lib/vault/encrypted_model.rb +177 -59
- data/lib/vault/rails.rb +77 -29
- data/lib/vault/rails/configurable.rb +54 -8
- data/lib/vault/rails/errors.rb +8 -0
- data/lib/vault/rails/{serializer.rb → json_serializer.rb} +4 -5
- data/lib/vault/rails/version.rb +1 -1
- data/spec/dummy/app/models/lazy_person.rb +20 -0
- data/spec/dummy/app/models/lazy_single_person.rb +18 -0
- data/spec/dummy/app/models/person.rb +36 -1
- data/spec/dummy/config/environments/development.rb +5 -3
- data/spec/dummy/config/environments/test.rb +5 -3
- data/spec/dummy/db/migrate/20150428220101_create_people.rb +7 -1
- data/spec/dummy/db/schema.rb +21 -16
- data/spec/integration/rails_spec.rb +397 -17
- data/spec/lib/vault/rails/json_serializer_spec.rb +42 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/unit/encrypted_model_spec.rb +9 -4
- data/spec/unit/rails/configurable_spec.rb +118 -0
- data/spec/unit/vault/rails_spec.rb +33 -0
- metadata +55 -56
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -220
- data/spec/dummy/log/test.log +0 -13
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Vault::Rails::JSONSerializer do
|
4
|
+
[
|
5
|
+
nil,
|
6
|
+
false,
|
7
|
+
true,
|
8
|
+
"",
|
9
|
+
"foo",
|
10
|
+
{},
|
11
|
+
{ "foo" => "bar" },
|
12
|
+
[],
|
13
|
+
["foo", "bar"],
|
14
|
+
0,
|
15
|
+
123,
|
16
|
+
0.0,
|
17
|
+
0.123,
|
18
|
+
0xff,
|
19
|
+
123e123
|
20
|
+
].each do |object|
|
21
|
+
it "encodes and decodes #{object.inspect}" do
|
22
|
+
encoded = described_class.encode(object)
|
23
|
+
expect(encoded).to be_a(String)
|
24
|
+
decoded = described_class.decode(encoded)
|
25
|
+
expect(decoded).to eq(object)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe ".decode" do
|
30
|
+
subject(:decoded) { described_class.decode(raw) }
|
31
|
+
|
32
|
+
context "with nil" do
|
33
|
+
let(:raw) { nil }
|
34
|
+
it { is_expected.to eq(nil) }
|
35
|
+
end
|
36
|
+
|
37
|
+
context "with an empty string (only possible if column has a default)" do
|
38
|
+
let(:raw) { "" }
|
39
|
+
it { is_expected.to eq(nil) }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,12 +3,31 @@ require "vault/rails"
|
|
3
3
|
|
4
4
|
require "rspec"
|
5
5
|
|
6
|
+
def vault_version_string
|
7
|
+
@vault_version_string ||= `vault --version`
|
8
|
+
end
|
9
|
+
|
10
|
+
TEST_VAULT_VERSION = Gem::Version.new(vault_version_string.match(/(\d+\.\d+\.\d+)/)[1])
|
11
|
+
|
6
12
|
RSpec.configure do |config|
|
7
13
|
# Prohibit using the should syntax
|
8
14
|
config.expect_with :rspec do |spec|
|
9
15
|
spec.syntax = :expect
|
10
16
|
end
|
11
17
|
|
18
|
+
# Allow tests to isolate a specific test using +focus: true+. If nothing
|
19
|
+
# is focused, then all tests are executed.
|
20
|
+
config.filter_run_when_matching :focus
|
21
|
+
config.filter_run_excluding vault: lambda { |v|
|
22
|
+
!vault_meets_requirements?(v)
|
23
|
+
}
|
24
|
+
config.filter_run_excluding ent_vault: lambda { |v|
|
25
|
+
!vault_is_enterprise? || !vault_meets_requirements?(v)
|
26
|
+
}
|
27
|
+
config.filter_run_excluding non_ent_vault: lambda { |v|
|
28
|
+
vault_is_enterprise? || !vault_meets_requirements?(v)
|
29
|
+
}
|
30
|
+
|
12
31
|
# Allow tests to isolate a specific test using +focus: true+. If nothing
|
13
32
|
# is focused, then all tests are executed.
|
14
33
|
config.filter_run(focus: true)
|
@@ -21,4 +40,12 @@ RSpec.configure do |config|
|
|
21
40
|
config.order = 'random'
|
22
41
|
end
|
23
42
|
|
43
|
+
def vault_is_enterprise?
|
44
|
+
!!vault_version_string.match(/\+(?:ent|prem)/)
|
45
|
+
end
|
46
|
+
|
47
|
+
def vault_meets_requirements?(v)
|
48
|
+
Gem::Requirement.new(v).satisfied_by?(TEST_VAULT_VERSION)
|
49
|
+
end
|
50
|
+
|
24
51
|
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
@@ -20,6 +20,12 @@ describe Vault::EncryptedModel do
|
|
20
20
|
}.to raise_error(Vault::Rails::ValidationFailedError)
|
21
21
|
end
|
22
22
|
|
23
|
+
it "raises an exception if a proc is passed to :context without an arity of 1" do
|
24
|
+
expect {
|
25
|
+
klass.vault_attribute(:foo, context: ->() { })
|
26
|
+
}.to raise_error(Vault::Rails::ValidationFailedError, /1 argument/i)
|
27
|
+
end
|
28
|
+
|
23
29
|
it "defines a getter" do
|
24
30
|
klass.vault_attribute(:foo)
|
25
31
|
expect(klass.instance_methods).to include(:foo)
|
@@ -36,10 +42,9 @@ describe Vault::EncryptedModel do
|
|
36
42
|
end
|
37
43
|
|
38
44
|
it "defines dirty attribute methods" do
|
39
|
-
|
40
|
-
expect(
|
41
|
-
expect(
|
42
|
-
expect(klass.instance_methods).to include(:foo_was)
|
45
|
+
expect(Person.new).to respond_to(:ssn_change)
|
46
|
+
expect(Person.new).to respond_to(:ssn_changed?)
|
47
|
+
expect(Person.new).to respond_to(:ssn_was)
|
43
48
|
end
|
44
49
|
end
|
45
50
|
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Vault::Rails::Configurable do
|
4
|
+
subject do
|
5
|
+
Class.new.tap do |c|
|
6
|
+
c.class.instance_eval do
|
7
|
+
include Vault::Rails::Configurable
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '.application' do
|
13
|
+
context 'when unconfigured' do
|
14
|
+
it 'raises exception' do
|
15
|
+
expect {
|
16
|
+
subject.application
|
17
|
+
}.to raise_error(RuntimeError)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'when configured' do
|
22
|
+
before do
|
23
|
+
subject.configure do |vault|
|
24
|
+
vault.application = "dummy"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'returns the application' do
|
29
|
+
expect(subject.application).to eq "dummy"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'falls back to ENV' do
|
34
|
+
before do
|
35
|
+
ENV["VAULT_RAILS_APPLICATION"] = "envdummy"
|
36
|
+
end
|
37
|
+
after do
|
38
|
+
ENV.delete("VAULT_RAILS_APPLICATION")
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'returns the application defined in ENV' do
|
42
|
+
expect(subject.application).to eq "envdummy"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '.enabled' do
|
48
|
+
context 'when unconfigured' do
|
49
|
+
it 'returns false' do
|
50
|
+
expect(subject.enabled?).to eq false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'when configured' do
|
55
|
+
it 'returns true' do
|
56
|
+
subject.configure do |vault|
|
57
|
+
vault.enabled = true
|
58
|
+
end
|
59
|
+
expect(subject.enabled?).to eq true
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'returns false' do
|
63
|
+
subject.configure do |vault|
|
64
|
+
vault.enabled = false
|
65
|
+
end
|
66
|
+
expect(subject.enabled?).to eq false
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context 'falls back to ENV' do
|
71
|
+
after do
|
72
|
+
ENV.delete("VAULT_RAILS_ENABLED")
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'returns false' do
|
76
|
+
ENV["VAULT_RAILS_ENABLED"] = "false"
|
77
|
+
expect(subject.enabled?).to eq false
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'returns true' do
|
81
|
+
ENV["VAULT_RAILS_ENABLED"] = "true"
|
82
|
+
expect(subject.enabled?).to eq true
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe '.in_memory_warnings_enabled?' do
|
88
|
+
context 'when unconfigured' do
|
89
|
+
it 'returns true' do
|
90
|
+
expect(subject.in_memory_warnings_enabled?).to eq true
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
context 'when configured as on' do
|
95
|
+
before do
|
96
|
+
subject.configure do |vault|
|
97
|
+
vault.in_memory_warnings_enabled = true
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'returns true' do
|
102
|
+
expect(subject.in_memory_warnings_enabled?).to eq true
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
context 'when configured as off' do
|
107
|
+
before do
|
108
|
+
subject.configure do |vault|
|
109
|
+
vault.in_memory_warnings_enabled = false
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'returns false' do
|
114
|
+
expect(subject.in_memory_warnings_enabled?).to eq false
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Vault::Rails do
|
4
|
+
describe "#memory_key_for" do
|
5
|
+
input_examples = [
|
6
|
+
["path", "key"],
|
7
|
+
["path", "key", "context"],
|
8
|
+
["a_really_long_path", "a_really_long_key"],
|
9
|
+
["a_really_long_path", "a_really_long_key", "a_really_long_context"],
|
10
|
+
]
|
11
|
+
|
12
|
+
input_examples.each do |path, key, encryption_context|
|
13
|
+
context "with path=#{path}, key=#{key}, context=#{encryption_context}" do
|
14
|
+
it "returns exactly 16 bytes as required by OpenSSL AES 128" do
|
15
|
+
memory_key = Vault::Rails.send(
|
16
|
+
:memory_key_for, path, key, context: encryption_context
|
17
|
+
)
|
18
|
+
expect(memory_key.bytesize).to eq(16)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns unique keys for different paths, keys, and contexts" do
|
24
|
+
memory_keys = input_examples.map { |path, key, encryption_context|
|
25
|
+
Vault::Rails.send(
|
26
|
+
:memory_key_for, path, key, context: encryption_context
|
27
|
+
)
|
28
|
+
}
|
29
|
+
|
30
|
+
expect(memory_keys).to match_array(memory_keys.uniq)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vault-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seth Vargo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,44 +16,44 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '5.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: vault
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.14'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.14'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name: pry
|
70
|
+
name: pry-byebug
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 12.3.3
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 12.3.3
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,16 +112,16 @@ dependencies:
|
|
112
112
|
name: sqlite3
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 1.3.6
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 1.3.6
|
125
125
|
description: Official Vault plugin for Rails
|
126
126
|
email:
|
127
127
|
- sethvargo@gmail.com
|
@@ -136,10 +136,11 @@ files:
|
|
136
136
|
- lib/vault/rails.rb
|
137
137
|
- lib/vault/rails/configurable.rb
|
138
138
|
- lib/vault/rails/errors.rb
|
139
|
-
- lib/vault/rails/
|
139
|
+
- lib/vault/rails/json_serializer.rb
|
140
140
|
- lib/vault/rails/version.rb
|
141
141
|
- spec/dummy/Rakefile
|
142
142
|
- spec/dummy/app/models/lazy_person.rb
|
143
|
+
- spec/dummy/app/models/lazy_single_person.rb
|
143
144
|
- spec/dummy/app/models/person.rb
|
144
145
|
- spec/dummy/bin/bundle
|
145
146
|
- spec/dummy/bin/rails
|
@@ -163,25 +164,24 @@ files:
|
|
163
164
|
- spec/dummy/config/locales/en.yml
|
164
165
|
- spec/dummy/config/routes.rb
|
165
166
|
- spec/dummy/config/secrets.yml
|
166
|
-
- spec/dummy/db/development.sqlite3
|
167
167
|
- spec/dummy/db/migrate/20150428220101_create_people.rb
|
168
168
|
- spec/dummy/db/schema.rb
|
169
|
-
- spec/dummy/db/test.sqlite3
|
170
169
|
- spec/dummy/lib/binary_serializer.rb
|
171
|
-
- spec/dummy/log/development.log
|
172
|
-
- spec/dummy/log/test.log
|
173
170
|
- spec/dummy/public/404.html
|
174
171
|
- spec/dummy/public/422.html
|
175
172
|
- spec/dummy/public/500.html
|
176
173
|
- spec/dummy/public/favicon.ico
|
177
174
|
- spec/integration/rails_spec.rb
|
175
|
+
- spec/lib/vault/rails/json_serializer_spec.rb
|
178
176
|
- spec/spec_helper.rb
|
179
177
|
- spec/support/vault_server.rb
|
180
178
|
- spec/unit/encrypted_model_spec.rb
|
179
|
+
- spec/unit/rails/configurable_spec.rb
|
181
180
|
- spec/unit/rails_spec.rb
|
181
|
+
- spec/unit/vault/rails_spec.rb
|
182
182
|
homepage: https://github.com/hashicorp/vault-rails
|
183
183
|
licenses:
|
184
|
-
-
|
184
|
+
- MPL-2.0
|
185
185
|
metadata: {}
|
186
186
|
post_install_message:
|
187
187
|
rdoc_options: []
|
@@ -198,50 +198,49 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
198
|
- !ruby/object:Gem::Version
|
199
199
|
version: '0'
|
200
200
|
requirements: []
|
201
|
-
|
202
|
-
rubygems_version: 2.5.1
|
201
|
+
rubygems_version: 3.1.4
|
203
202
|
signing_key:
|
204
203
|
specification_version: 4
|
205
204
|
summary: Official Vault plugin for Rails
|
206
205
|
test_files:
|
207
|
-
- spec/
|
208
|
-
- spec/
|
206
|
+
- spec/support/vault_server.rb
|
207
|
+
- spec/integration/rails_spec.rb
|
209
208
|
- spec/dummy/bin/bundle
|
210
|
-
- spec/dummy/bin/rails
|
211
209
|
- spec/dummy/bin/rake
|
210
|
+
- spec/dummy/bin/rails
|
211
|
+
- spec/dummy/db/schema.rb
|
212
|
+
- spec/dummy/db/migrate/20150428220101_create_people.rb
|
213
|
+
- spec/dummy/public/404.html
|
214
|
+
- spec/dummy/public/422.html
|
215
|
+
- spec/dummy/public/500.html
|
216
|
+
- spec/dummy/public/favicon.ico
|
217
|
+
- spec/dummy/Rakefile
|
218
|
+
- spec/dummy/config.ru
|
219
|
+
- spec/dummy/app/models/lazy_person.rb
|
220
|
+
- spec/dummy/app/models/lazy_single_person.rb
|
221
|
+
- spec/dummy/app/models/person.rb
|
222
|
+
- spec/dummy/config/environment.rb
|
223
|
+
- spec/dummy/config/locales/en.yml
|
212
224
|
- spec/dummy/config/application.rb
|
225
|
+
- spec/dummy/config/routes.rb
|
213
226
|
- spec/dummy/config/boot.rb
|
214
|
-
- spec/dummy/config/
|
215
|
-
- spec/dummy/config/environment.rb
|
216
|
-
- spec/dummy/config/environments/development.rb
|
227
|
+
- spec/dummy/config/secrets.yml
|
217
228
|
- spec/dummy/config/environments/test.rb
|
218
|
-
- spec/dummy/config/
|
229
|
+
- spec/dummy/config/environments/development.rb
|
230
|
+
- spec/dummy/config/initializers/inflections.rb
|
231
|
+
- spec/dummy/config/initializers/vault.rb
|
219
232
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
220
|
-
- spec/dummy/config/initializers/cookies_serializer.rb
|
221
233
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
222
|
-
- spec/dummy/config/initializers/inflections.rb
|
223
|
-
- spec/dummy/config/initializers/mime_types.rb
|
224
234
|
- spec/dummy/config/initializers/session_store.rb
|
225
|
-
- spec/dummy/config/initializers/
|
235
|
+
- spec/dummy/config/initializers/mime_types.rb
|
236
|
+
- spec/dummy/config/initializers/assets.rb
|
226
237
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
227
|
-
- spec/dummy/config/
|
228
|
-
- spec/dummy/config/
|
229
|
-
- spec/dummy/config/secrets.yml
|
230
|
-
- spec/dummy/config.ru
|
231
|
-
- spec/dummy/db/development.sqlite3
|
232
|
-
- spec/dummy/db/migrate/20150428220101_create_people.rb
|
233
|
-
- spec/dummy/db/schema.rb
|
234
|
-
- spec/dummy/db/test.sqlite3
|
238
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
239
|
+
- spec/dummy/config/database.yml
|
235
240
|
- spec/dummy/lib/binary_serializer.rb
|
236
|
-
- spec/dummy/log/development.log
|
237
|
-
- spec/dummy/log/test.log
|
238
|
-
- spec/dummy/public/404.html
|
239
|
-
- spec/dummy/public/422.html
|
240
|
-
- spec/dummy/public/500.html
|
241
|
-
- spec/dummy/public/favicon.ico
|
242
|
-
- spec/dummy/Rakefile
|
243
|
-
- spec/integration/rails_spec.rb
|
244
241
|
- spec/spec_helper.rb
|
245
|
-
- spec/support/vault_server.rb
|
246
|
-
- spec/unit/encrypted_model_spec.rb
|
247
242
|
- spec/unit/rails_spec.rb
|
243
|
+
- spec/unit/vault/rails_spec.rb
|
244
|
+
- spec/unit/encrypted_model_spec.rb
|
245
|
+
- spec/unit/rails/configurable_spec.rb
|
246
|
+
- spec/lib/vault/rails/json_serializer_spec.rb
|