triad 0.1.1 → 0.1.2

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: 5de1aa1907fddfc9cdb328084386536141ce5e09
4
- data.tar.gz: 79b81e26aae062079861a4cce8890aac7597d10c
3
+ metadata.gz: 4c4a3d5a34d53b03e28a07a31212d75a5ad6742a
4
+ data.tar.gz: ed8be35c9c1089723081621d2f899d6261dcefde
5
5
  SHA512:
6
- metadata.gz: 4cb09666780c5019f2042069aedeedb3e61e1983184676f6ffd590d20deaea93b2ef3939f6b7bcdb54c15b07e2c1a9791c33e5abaaa823187bf79e55b405c5ab
7
- data.tar.gz: 20c8e8809ae5a84ab6aa2e93da4d12e290fb0284d0be47e50748a4f6c8db47be226d8c76d872bfd36f362e2c5fac304a861326822c1cec0c6f95c84a85ae3dc6
6
+ metadata.gz: 0705916e6ab3a0a9df08c2223d67f7ebb2df920e4a714a1dad425a4e920d1e849d84ab80f38a8656ef44c30266f2982ead91bc81b366d779f1050ea5514dfc75
7
+ data.tar.gz: 731dbb05b135b0afbfc9556f3b9f1a27d20899859f08d6195f6a9ebeec6a1118fd2e9d4966dac0ec89c43625fd44d7ee9c8704e166fdeae93f4bd75c4bfb43bf
data/lib/triad/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Triad
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/triad.rb CHANGED
@@ -3,11 +3,7 @@ require "triad/version"
3
3
  class Triad
4
4
  include Enumerable
5
5
 
6
- class InvalidAddition < StandardError
7
- def message
8
- "your array length must be 3"
9
- end
10
- end
6
+ class InvalidAddition < StandardError; end
11
7
  class ValueNotPresent < StandardError; end
12
8
  class DescriptorNotPresent < StandardError; end
13
9
  class KeyNotPresent < StandardError; end
@@ -45,7 +41,8 @@ class Triad
45
41
 
46
42
  def <<(array)
47
43
  array_key = array.find{|item| item.is_a?(Symbol) }
48
- raise InvalidAddition if array.length != 3 || key_exists?(array_key)
44
+ raise InvalidAddition.new("your array length must be 3") if array.length != 3
45
+ raise InvalidAddition.new("the provided key already exists") if key_exists?(array_key)
49
46
 
50
47
  array_descriptor = array.find{|item| item.is_a?(String) }
51
48
  array_value = array.find{|item| !item.is_a?(String) && !item.is_a?(Symbol) }
@@ -54,6 +51,10 @@ class Triad
54
51
  self
55
52
  end
56
53
 
54
+ def update(key, descriptor, value)
55
+ storage[key] = [descriptor, value]
56
+ end
57
+
57
58
  def each
58
59
  storage.each do |key, (descriptor, value)|
59
60
  yield key, descriptor, value
data/test/triad_test.rb CHANGED
@@ -49,6 +49,18 @@ describe Triad, '#<<' do
49
49
  end
50
50
  end
51
51
 
52
+ describe Triad, '#update' do
53
+ let(:triad){ Triad.new }
54
+
55
+ it 'updates a descriptor and object for the given key' do
56
+ object = Object.new
57
+ triad << [:test, 'Test', object]
58
+ assert_equal ['Test'], triad.descriptors(:test)
59
+ triad.update(:test, 'Updated', Object.new)
60
+ assert_equal ['Updated'], triad.descriptors(:test)
61
+ end
62
+ end
63
+
52
64
  describe Triad, '#keys' do
53
65
  let(:user){ Object.new }
54
66
  let(:triad){
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: triad
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - '''Jim Gay'''
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-07 00:00:00.000000000 Z
11
+ date: 2013-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler