lazyrecord 0.0.1 → 0.0.2

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lazyrecord.rb +38 -10
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4ec6b2f3a12a15562e395d4fd6b32adb3910585197d0b8cc7ce4a26ca99b2e2
4
- data.tar.gz: 6e308aa39d039027d5952819ed922c5e56bc1ef581190e38440acf0ac5687c69
3
+ metadata.gz: fd6d9f69ebc8f7224ad29c3b949b0fceeb9ccc22ba3cd401b41f6c088e61d828
4
+ data.tar.gz: 75f7f57570ee17d740c11b7d992b247ecacd78a4de0bcee22e14edcafba57251
5
5
  SHA512:
6
- metadata.gz: e5516c160bda129924a4920e9b952bf80a2f3ae36a46f50eed4af7efbb45bd1be157a15a360266ac67a47edaf31b314a9aec3a293ebde47960ed111e004d68ac
7
- data.tar.gz: 612543c5f7f126e8265ffd86ddbea70744a796282ee9240ba9563f1728f3e07dc847f45b9917e5dd92c409c1d3d5c7630c99d6d785695915a1c1bcf92e582278
6
+ metadata.gz: c7723f4ec9634dc3c4ecb9befe348f47d0f93e7b381bfc101a6b1d3fc44969f87041cfe10b4a05ce0eeb7cafd6cb18a8dd00352c72ec4286ab3b5f58f98ec84c
7
+ data.tar.gz: 1bdc55e922647da1d0a4ea1fe668d0b06faea797bd00190b22be7192bf0d2d9739fd00f7b73cce12035fdb61772ba4891f50823a18afbee9ae29975f4a49ac9a
data/lib/lazyrecord.rb CHANGED
@@ -2,7 +2,11 @@ require "pstore"
2
2
 
3
3
  class Store
4
4
  def initialize(name)
5
- @data = PStore.new("#{name}.pstore")
5
+ @name = name
6
+ @data = PStore.new("#{@name}.pstore")
7
+ transaction do
8
+ @entities = @data.roots.reject { |entity| entity.include? "current_id" }
9
+ end
6
10
  end
7
11
 
8
12
  def create_entity(name)
@@ -12,6 +16,10 @@ class Store
12
16
  @data[current_id_key(name)] = 0
13
17
  end
14
18
  end
19
+
20
+ unless @entities.include? name
21
+ @entities << name
22
+ end
15
23
  end
16
24
 
17
25
  def find(entity_name, id)
@@ -26,8 +34,6 @@ class Store
26
34
 
27
35
  def next_id(entity_name)
28
36
  transaction do
29
- p entity_name
30
- p @data[current_id_key(entity_name)]
31
37
  @data[current_id_key(entity_name)] += 1
32
38
  end
33
39
  end
@@ -38,12 +44,6 @@ class Store
38
44
  end
39
45
  end
40
46
 
41
- def entities
42
- transaction do
43
- @data.roots
44
- end
45
- end
46
-
47
47
  def transaction
48
48
  @data.transaction do
49
49
  yield
@@ -55,6 +55,30 @@ class Store
55
55
  @data[entity_name][record.id] = record
56
56
  end
57
57
  end
58
+
59
+ def delete(entity_name, id)
60
+ transaction do
61
+ p @data[entity_name]
62
+ end
63
+
64
+ transaction do
65
+ @data[entity_name].delete(id)
66
+ end
67
+
68
+ transaction do
69
+ p @data[entity_name]
70
+ end
71
+ end
72
+
73
+ def flush!
74
+ @entities.each do |entity|
75
+ transaction do
76
+ @data.delete(entity)
77
+ @data.delete(current_id_key(entity))
78
+ end
79
+ create_entity(entity)
80
+ end
81
+ end
58
82
  end
59
83
 
60
84
  class LazyRecord
@@ -97,9 +121,13 @@ class LazyRecord
97
121
  store.save(entity_name, record)
98
122
  end
99
123
 
124
+ def delete(id)
125
+ store.delete(entity_name, id)
126
+ end
127
+
100
128
  def create(*args)
101
129
  record = new(*args)
102
- save(record)
130
+ record.save
103
131
  record
104
132
  end
105
133
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazyrecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julio Navarro