rowdb 0.4.1 → 0.5.1

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