econfig-keychain 2.0.0 → 3.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.
- checksums.yaml +4 -4
- data/econfig-keychain.gemspec +1 -1
- data/lib/econfig/keychain.rb +8 -12
- data/lib/econfig/keychain/version.rb +1 -1
- data/spec/econfig/keychain_spec.rb +29 -30
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9b8fe1c242e214d2dc97c82da1637040c93c9bd
|
4
|
+
data.tar.gz: 6e771f89f497b0a6389a494d3d2df8458ab2f6e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bfacf6626c968062fb700717c88d6207d7ac622b70ce5caaf9098cb1e0de9ffaedbfd0d2b813c56348c1900aabf8188ce66aa90c6c4dd2f8837bb17707f02e7
|
7
|
+
data.tar.gz: 8901585893d58955310e22e6b99fa6bc4c2a7bb68fb602c27b542bfe1aac3a73d797ce4132b09a9fd5eeebf6441b44434f1114384e3fa8e8ed438163b2b569ef
|
data/econfig-keychain.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.required_ruby_version = "~> 2.0"
|
21
21
|
|
22
|
-
spec.add_dependency "econfig", "~>
|
22
|
+
spec.add_dependency "econfig", "~> 2.0"
|
23
23
|
spec.add_dependency "mellon", "~> 1.0"
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.6"
|
data/lib/econfig/keychain.rb
CHANGED
@@ -3,14 +3,16 @@ require "econfig"
|
|
3
3
|
|
4
4
|
module Econfig
|
5
5
|
class Keychain
|
6
|
-
|
7
|
-
|
6
|
+
attr_reader :store
|
7
|
+
|
8
|
+
def initialize(keychain, name)
|
9
|
+
@store = ::Mellon::Store.new(name, keychain: keychain)
|
8
10
|
end
|
9
11
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
12
|
+
def has_key?(key)
|
13
|
+
true if store.fetch(key)
|
14
|
+
rescue KeyError
|
15
|
+
false
|
14
16
|
end
|
15
17
|
|
16
18
|
def get(key)
|
@@ -20,11 +22,5 @@ module Econfig
|
|
20
22
|
def set(key, value)
|
21
23
|
store[key] = value
|
22
24
|
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def store
|
27
|
-
@store or raise Econfig::UninitializedError
|
28
|
-
end
|
29
25
|
end
|
30
26
|
end
|
@@ -8,8 +8,8 @@ Econfig.env = "test"
|
|
8
8
|
describe Econfig::Keychain do
|
9
9
|
let(:keychain_path) { File.expand_path("./osx.temporary.keychain", __dir__) }
|
10
10
|
let(:keychain) { Mellon::Keychain.new(keychain_path) }
|
11
|
-
let(:
|
12
|
-
let(:backend) { Econfig::Keychain.new(keychain) }
|
11
|
+
let(:item_name) { "econfig" }
|
12
|
+
let(:backend) { Econfig::Keychain.new(keychain, item_name) }
|
13
13
|
|
14
14
|
around do |example|
|
15
15
|
original_keychain_path = File.expand_path("./osx.keychain", __dir__)
|
@@ -18,47 +18,46 @@ describe Econfig::Keychain do
|
|
18
18
|
FileUtils.rm(keychain_path)
|
19
19
|
end
|
20
20
|
|
21
|
-
describe "#
|
22
|
-
|
23
|
-
Econfig.stub(root: "different")
|
24
|
-
expect { backend.init }.to change { keychain[project_name] }
|
25
|
-
.from(nil).to("")
|
26
|
-
end
|
21
|
+
describe "#initialize" do
|
22
|
+
let(:item_name) { "other" }
|
27
23
|
|
28
|
-
it "does not
|
29
|
-
backend.
|
30
|
-
|
24
|
+
it "creates the keychain note if it does not exist" do
|
25
|
+
backend.set("foo", "bar")
|
26
|
+
YAML.load(keychain["other"])["foo"].should eq("bar")
|
31
27
|
end
|
32
28
|
end
|
33
29
|
|
34
|
-
|
35
|
-
|
36
|
-
|
30
|
+
describe "#has_key?" do
|
31
|
+
it "returns false if the option does not exist" do
|
32
|
+
backend.has_key?("does not exist").should eq false
|
37
33
|
end
|
38
34
|
|
39
|
-
|
40
|
-
|
35
|
+
it "returns true if the option exists" do
|
36
|
+
backend.has_key?("i exist").should eq true
|
41
37
|
end
|
42
38
|
end
|
43
39
|
|
44
|
-
|
45
|
-
|
40
|
+
describe "#get" do
|
41
|
+
it "fetches an option from the keychain" do
|
42
|
+
backend.get("i exist").should eq "this exist"
|
43
|
+
end
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
45
|
+
it "returns nil if option does not exist" do
|
46
|
+
backend.get("does not exist").should be_nil
|
47
|
+
end
|
48
|
+
end
|
51
49
|
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
describe "#set" do
|
51
|
+
it "sets an option in the keychain" do
|
52
|
+
backend.set("new key", "pub")
|
53
|
+
backend.get("new key").should eq "pub"
|
55
54
|
end
|
56
55
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
56
|
+
it "does not overwrite existing data" do
|
57
|
+
backend.set("a", "foo")
|
58
|
+
backend.set("b", "bar")
|
59
|
+
backend.get("a").should eq "foo"
|
60
|
+
backend.get("b").should eq "bar"
|
62
61
|
end
|
63
62
|
end
|
64
63
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: econfig-keychain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kim Burgestrand
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-02-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: econfig
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '2.0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '2.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: mellon
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.
|
124
|
+
rubygems_version: 2.4.3
|
125
125
|
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: An OSX keychain adapter for Econfig.
|