hash-save 0.0.3 → 0.0.4

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