econfig-keychain 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 470f3d19f1db3d9779d0bf035cfe902f84fa90c5
4
- data.tar.gz: c42eac479ba18c06ab08d9d79a38a3cb3ecd8be4
3
+ metadata.gz: a9b8fe1c242e214d2dc97c82da1637040c93c9bd
4
+ data.tar.gz: 6e771f89f497b0a6389a494d3d2df8458ab2f6e6
5
5
  SHA512:
6
- metadata.gz: c55059239ed39bc3051103bdc747974bc41513411a9baadea0b7b7914aa139352bc8012c62d4823674b94e48afb8c7977214abb7efb6cc32cf9cc4d40c3403f2
7
- data.tar.gz: 58d3947d41a0670dcb6c6f76b37bd1178fd23bd9b8b641e50cbf108d86fd31ccf8849cb3f1dde18e38f7912ccc73e9fda3905c69c2ff3f1de339753a5564617e
6
+ metadata.gz: 4bfacf6626c968062fb700717c88d6207d7ac622b70ce5caaf9098cb1e0de9ffaedbfd0d2b813c56348c1900aabf8188ce66aa90c6c4dd2f8837bb17707f02e7
7
+ data.tar.gz: 8901585893d58955310e22e6b99fa6bc4c2a7bb68fb602c27b542bfe1aac3a73d797ce4132b09a9fd5eeebf6441b44434f1114384e3fa8e8ed438163b2b569ef
@@ -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", "~> 1.0"
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"
@@ -3,14 +3,16 @@ require "econfig"
3
3
 
4
4
  module Econfig
5
5
  class Keychain
6
- def initialize(keychain, name: nil)
7
- @init = { keychain: keychain, name: name }
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 init
11
- project_name = @init[:name] || File.basename(Econfig.root)
12
- @store = ::Mellon::Store.new(project_name, keychain: @init[:keychain])
13
- @store.keychain[@store.project_name] ||= ""
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
@@ -1,5 +1,5 @@
1
1
  module Econfig
2
2
  class Keychain
3
- VERSION = "2.0.0"
3
+ VERSION = "3.0.0"
4
4
  end
5
5
  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(:project_name) { File.basename(Econfig.root) }
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 "#init" do
22
- it "creates the note in the keychain if it does not exist" do
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 overwrite existing data" do
29
- backend.init
30
- backend.get("i exist").should eq "this exist"
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
- context "before init" do
35
- specify "#get raises an error" do
36
- expect { backend.get("key") }.to raise_error(Econfig::UninitializedError)
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
- specify "#set raises an error" do
40
- expect { backend.set("key", "value") }.to raise_error(Econfig::UninitializedError)
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
- context "after init" do
45
- before { backend.init }
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
- describe "#get" do
48
- it "fetches an option from the keychain" do
49
- backend.get("i exist").should eq "this exist"
50
- end
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
- it "returns nil if option does not exist" do
53
- backend.get("does not exist").should be_nil
54
- end
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
- describe "#set" do
58
- it "sets an option in the keychain" do
59
- backend.set("new key", "pub")
60
- backend.get("new key").should eq "pub"
61
- end
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: 2.0.0
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: 2014-05-26 00:00:00.000000000 Z
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: '1.0'
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: '1.0'
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.2.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.