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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/adapters/Sync.rb +3 -2
  3. data/lib/rowdb.rb +14 -12
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ad64b04f574bb4bf24939928f1c85534ac368f4304b70e4d91dd85fe9c23b84
4
- data.tar.gz: 3845d4ce910bb3e853d7723348dc3471034aa90febfe21cc07128e2c09bcc340
3
+ metadata.gz: 39c1806858f1a8d306f1ee05349654b9d368a8236f67ac980263639a0ba799b5
4
+ data.tar.gz: 128eb45b82377dc04fa2ea226c1f962f18a494e7778f8da83c2fd0eaa0fa18cb
5
5
  SHA512:
6
- metadata.gz: 8d013e350e375819a84b73e6103c4e4313098b2218f397d8ab16465695f74d7212c711690fd23c9d8d0df1c2e786041b5581a0472ba7a4babb63c17d89610674
7
- data.tar.gz: 18643fcf1fbe0c294bf88757dcc375c00239470856a92e8380726c99f88f8131e5482a9d5731555b364c83e711210c95e523d545b14a936bfff71473acfe0f7f
6
+ metadata.gz: c3c28ad22face7a22ed466bfe3d61b2c82ef8aee4a22d8d275979b4d9bbbaa9bef9b7b1b32150449f321b3ed4ab745e52fe7cc48df27049b917d8f94c36da175
7
+ data.tar.gz: dd270b13e87c11753d2cdc50baf277c45cdd9fb637448e740ba3caeca40be4c107797b38fa9073b6bd71f3316d6462779d4e051849b566ccef55bd25c454d45f
@@ -16,7 +16,8 @@ class Sync < Adapter
16
16
  json = Oj.load_file(@source)
17
17
 
18
18
  unless json.nil?
19
- return Oj.load(json)
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
@@ -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
- @data = R_.chain(@adapter.read())
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 @data.value().nil?
14
- # Load default data.
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
- @data.get(path)
22
+ @chain.get(path)
25
23
  self
26
24
  end
27
25
 
28
26
  def set(path, value)
29
- @data.set(path, value)
27
+ @chain.set(path, value)
30
28
  self
31
29
  end
32
30
 
33
31
  def value()
34
- @data.value()
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
- index = @data.get(@get_path).value().count
43
- @data.set("#{@get_path}[#{index}]", value)
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(@data.value())
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.1
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-19 00:00:00.000000000 Z
11
+ date: 2020-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj