rangehash 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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