triad 0.1.1 → 0.1.2

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