rowdb 0.4.1 → 0.5.1
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 +4 -4
- data/lib/adapters/Sync.rb +3 -2
- data/lib/rowdb.rb +14 -12
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39c1806858f1a8d306f1ee05349654b9d368a8236f67ac980263639a0ba799b5
|
4
|
+
data.tar.gz: 128eb45b82377dc04fa2ea226c1f962f18a494e7778f8da83c2fd0eaa0fa18cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3c28ad22face7a22ed466bfe3d61b2c82ef8aee4a22d8d275979b4d9bbbaa9bef9b7b1b32150449f321b3ed4ab745e52fe7cc48df27049b917d8f94c36da175
|
7
|
+
data.tar.gz: dd270b13e87c11753d2cdc50baf277c45cdd9fb637448e740ba3caeca40be4c107797b38fa9073b6bd71f3316d6462779d4e051849b566ccef55bd25c454d45f
|
data/lib/adapters/Sync.rb
CHANGED
@@ -16,7 +16,8 @@ class Sync < Adapter
|
|
16
16
|
json = Oj.load_file(@source)
|
17
17
|
|
18
18
|
unless json.nil?
|
19
|
-
|
19
|
+
data = Oj.load(json)
|
20
|
+
return data.transform_keys(&:to_sym)
|
20
21
|
end
|
21
22
|
|
22
23
|
return nil
|
@@ -30,7 +31,7 @@ class Sync < Adapter
|
|
30
31
|
##
|
31
32
|
def write(data)
|
32
33
|
|
33
|
-
json = Oj.dump(data)
|
34
|
+
json = Oj.dump(data, mode: :compat)
|
34
35
|
Oj.to_file(@source, json)
|
35
36
|
|
36
37
|
end
|
data/lib/rowdb.rb
CHANGED
@@ -5,48 +5,50 @@ class Rowdb
|
|
5
5
|
|
6
6
|
def initialize(file_path, adapter = :sync)
|
7
7
|
@adapter = self.send(adapter, normalize_path(file_path))
|
8
|
-
@
|
8
|
+
@chain = R_.chain(@adapter.read())
|
9
9
|
@get_path = nil
|
10
10
|
end
|
11
11
|
|
12
|
+
# Set default data.
|
12
13
|
def defaults(data)
|
13
|
-
if @
|
14
|
-
|
15
|
-
@data = R_.chain(data)
|
16
|
-
# Save data to disk.
|
17
|
-
@adapter.write(data)
|
14
|
+
if @chain.value().nil?
|
15
|
+
@chain = R_.chain(data.transform_keys(&:to_sym))
|
18
16
|
end
|
19
17
|
self
|
20
18
|
end
|
21
19
|
|
22
20
|
def get(path)
|
23
21
|
@get_path = path
|
24
|
-
@
|
22
|
+
@chain.get(path)
|
25
23
|
self
|
26
24
|
end
|
27
25
|
|
28
26
|
def set(path, value)
|
29
|
-
@
|
27
|
+
@chain.set(path, value)
|
30
28
|
self
|
31
29
|
end
|
32
30
|
|
33
31
|
def value()
|
34
|
-
@
|
32
|
+
@chain.value()
|
35
33
|
end
|
36
34
|
|
37
35
|
def push(value)
|
36
|
+
|
38
37
|
if @get_path.nil?
|
39
38
|
raise StandardError.new "You must get() before push()."
|
40
39
|
end
|
41
40
|
|
42
|
-
|
43
|
-
|
41
|
+
# Add value to end of array.
|
42
|
+
adder = -> (items) {
|
43
|
+
[*items, value]
|
44
|
+
}
|
45
|
+
R_.update(@chain.value(), @get_path, adder)
|
44
46
|
|
45
47
|
self
|
46
48
|
end
|
47
49
|
|
48
50
|
def write()
|
49
|
-
@adapter.write(@
|
51
|
+
@adapter.write(@chain.value())
|
50
52
|
self
|
51
53
|
end
|
52
54
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rowdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maedi Prichard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-08-
|
11
|
+
date: 2020-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|