store-memory 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25cf8a3bda43b3c159ab59944e48fe1c8fa22af1
4
- data.tar.gz: 01f0183cc781f046f61a9d598c2b05d02de79a3f
3
+ metadata.gz: 806cb434064eadd4acdd0af34b53a4fc4ff040d6
4
+ data.tar.gz: 6fc57977f5b5d89902434a3249001337520e1dc0
5
5
  SHA512:
6
- metadata.gz: 1fc9d1652882e369a764c0b9da000a3ca901f5a14f89594ab55f53a43bf2ed56d583c1e7ebf7812a2f199556654296f84c3e76664acb69c250742bfd3e4e49ae
7
- data.tar.gz: 29f72db4987a71376024eda953768da8bda9825a72311221b6376d4636bb77a72199cc54d0a811f23fc5a61dd723d1be6d7272b7823f2bc46ac502ea3ccc97b7
6
+ metadata.gz: 4cd835f43fe2742a8bc10aeb1d65c98c56a83f82cc042c92d25d0aaeb539b423ea34b1fb1a880aab8063f9ed4dfd0c0d5e3f523c7707052923992837f6e5b62a
7
+ data.tar.gz: 695ab1d5f54aec57841a1386ffb26d9e19ad03c1386cd39682c82046a166918e89dec12ed780b3092c23382069e09b0d940655acac5808958c3bac78ab58ccda
@@ -1,5 +1,5 @@
1
1
  class Store
2
2
  class Memory
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
data/lib/store/memory.rb CHANGED
@@ -9,36 +9,36 @@ class Store
9
9
  @items = {}
10
10
  @id = 0
11
11
  end
12
-
12
+
13
13
  def insert(data)
14
14
  id = next_id.to_s
15
15
  store(id, data)
16
16
  id
17
17
  end
18
-
18
+
19
19
  def update(id, data)
20
20
  id = id.to_s
21
21
  store(id, data)
22
22
  id
23
23
  end
24
-
24
+
25
25
  def delete(id)
26
26
  items.delete(id)
27
27
  id
28
28
  end
29
-
29
+
30
30
  def single_find(id)
31
31
  dup(items[id])
32
32
  end
33
-
33
+
34
34
  def bulk_find(ids)
35
35
  collection(items.values_at(*ids))
36
36
  end
37
-
37
+
38
38
  def all
39
39
  collection(items.values)
40
40
  end
41
-
41
+
42
42
  def count
43
43
  all.size
44
44
  end
@@ -60,9 +60,21 @@ class Store
60
60
  def next_id
61
61
  @id += 1
62
62
  end
63
-
63
+
64
64
  def dup(data)
65
- data and Marshal.load(Marshal.dump(data))
65
+ data and dup_hash(data)
66
+ end
67
+
68
+ def dup_hash(hash)
69
+ Hash.new.tap do |dupped_hash|
70
+ hash.each do |key, value|
71
+ dupped_hash[key] = dup_obj(value)
72
+ end
73
+ end
74
+ end
75
+
76
+ def dup_obj(obj)
77
+ obj ? obj.dup : nil
66
78
  end
67
79
 
68
80
  def store(id, data)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: store-memory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Owiesniak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-22 00:00:00.000000000 Z
11
+ date: 2013-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -118,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  version: '0'
119
119
  requirements: []
120
120
  rubyforge_project:
121
- rubygems_version: 2.0.3
121
+ rubygems_version: 2.0.0
122
122
  signing_key:
123
123
  specification_version: 4
124
124
  summary: Basic Memory DataMapper for Store.