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 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.