hash-save 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.
Files changed (2) hide show
  1. data/lib/hash-save.rb +24 -7
  2. metadata +3 -3
@@ -7,26 +7,43 @@ class Hash
7
7
  Marshal.dump(v, f)
8
8
  end
9
9
  end
10
+
10
11
  rescue Errno::ENOENT
11
12
  Dir.mkdir(BASE_DIR)
12
- retry if Dir.exists(BASE_DIR)
13
+ retry if Dir.exists?(BASE_DIR)
14
+ end
15
+
16
+ def load!
17
+ self.each do |k,v|
18
+ self[k] = self.class.find!(k)
19
+ end
13
20
  end
14
21
 
15
- def self.find(k)
22
+ def self.find!(k)
16
23
  File.open("#{BASE_DIR}/#{k}", 'rb') do |f|
17
24
  Marshal.load(f)
18
25
  end
19
26
  end
20
27
 
21
- def self.modify(k)
22
- {k => yield(Hash.find(k))}.save
28
+ def load
29
+ self.each do |k,v|
30
+ self[k] = self.class.find(k)
31
+ end
32
+ end
33
+
34
+ def self.find(k, default_val=nil)
35
+ begin
36
+ self.find!(k)
37
+ rescue Errno::ENOENT => e
38
+ default_val
39
+ end
23
40
  end
24
41
 
25
- def self.inc(k)
26
- modify(k){|x| x + 1}
42
+ def self.modify!(k)
43
+ {k => yield(Hash.find(k))}.save
27
44
  end
28
45
 
29
46
  def self.inc!(k)
30
- modify(k){|x| x + 1}.save
47
+ modify!(k){ |x| x + 1 }
31
48
  end
32
49
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - David Beckwith
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-02-19 00:00:00 -08:00
17
+ date: 2011-02-20 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies: []
20
20