rangehash 0.0.3 → 0.0.4

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.
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ === 0.0.4 2011-04-28
2
+ * 1 Major enhancement:
3
+ * Upated to Ruby 1.9
4
+
1
5
  === 0.0.3 2011-04-25
2
6
  * 1 major enhancement:
3
7
  * RangeHash is now a full fledged derived class of Hash
data/lib/rangehash.rb CHANGED
@@ -2,7 +2,7 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module Rangehash
5
- VERSION = '0.0.3'
5
+ VERSION = '0.0.4'
6
6
  end
7
7
 
8
8
  class RangeHash < Hash
@@ -19,6 +19,11 @@ class RangeHash < Hash
19
19
  raise IndexError, "key " + key.to_s + " not found" if not block_given?
20
20
  end
21
21
 
22
+ def assoc(key)
23
+ found = find_pair(key)
24
+ found.empty? ? nil : found.first
25
+ end
26
+
22
27
  def key?(key)
23
28
  found = find_pair(key)
24
29
  !(found.empty?)
@@ -40,7 +45,7 @@ class RangeHash < Hash
40
45
 
41
46
  private
42
47
  def find_pair(key)
43
- each_pair.select {|k, v| (k == key || k === key)}
48
+ each.select {|k, v| (k == key || k === key)}
44
49
  end
45
50
 
46
51
  def find_value(key)
@@ -60,6 +60,18 @@ describe RangeHash do
60
60
  end
61
61
  end
62
62
 
63
+ describe ".assoc" do
64
+ it "handle reanges specially" do
65
+ rh[2..4] = :foo
66
+ rh.assoc(3).should == [(2..4), :foo]
67
+ end
68
+
69
+ it "returns nil if key not found" do
70
+ rh[2..4] = :foo
71
+ rh.assoc(42).should be_nil
72
+ end
73
+ end
74
+
63
75
  describe ".fetch" do
64
76
  it "handles ranges" do
65
77
  rh[2..4] = :foo
@@ -123,13 +135,6 @@ describe RangeHash do
123
135
  end
124
136
  end
125
137
 
126
- describe ".index" do
127
- it "handles ranges" do
128
- rh[2..4] = :foo
129
- rh.index(:foo).should == (2..4)
130
- end
131
- end
132
-
133
138
  describe ".sorted_keys" do
134
139
  it "allows retrieval of sorted keys" do
135
140
  rh[10..20] = :foo
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rangehash
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mark Simpson
@@ -36,7 +36,7 @@ cert_chain:
36
36
  rPnJW2hNpPLFrA==
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2011-04-26 00:00:00 -04:00
39
+ date: 2011-04-28 00:00:00 -04:00
40
40
  default_executable:
41
41
  dependencies:
42
42
  - !ruby/object:Gem::Dependency
metadata.gz.sig CHANGED
Binary file