heliodor 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f68d88cabd00c5927c58c03e62c9ef4c763ca93c
4
- data.tar.gz: 4b467b876e1d87bfe3185b770f4995159a7fe14c
3
+ metadata.gz: d6dc391394976e4bb9858c31eeb9c366dcdfe265
4
+ data.tar.gz: 26f0f253d330e5e3172eb034b5cb3255d618c001
5
5
  SHA512:
6
- metadata.gz: cd9e3c8bd52897efcb53224e430952e1e53e3c7e9ec3a49bcfe9b700b9e6f6b41c6d574a35738b032eb257a8c364fb0f663487c49e42e1984d5e7346d5f811e8
7
- data.tar.gz: efc1731366889d3e9b23ebc9b8ad04ac9975f6aeb46f11d11616f2e1929d7044487c896855c5bef1ca937704f4276b8afeb6347a1284834ea9a30f7f1abbdbed
6
+ metadata.gz: 2c067b11daf5e347d0955fe5050203cb32bf99027188147bb6c7c308350a2b5b0e193798b830360ff2113147e5f0c365afd467be916beeb115dba52bd5e0d3c0
7
+ data.tar.gz: cb726d9a3dd2a99ed10438c5a7d6a420c05e1865f7c828b94005f946f3f63209e4821b20ee5cd6b5dbe1a0b6d10a950c111e81a23d3ef38484d5551fd594fe89
@@ -20,4 +20,7 @@ Style/Documentation:
20
20
  Enabled: false
21
21
 
22
22
  Style/ClassAndModuleChildren:
23
+ Enabled: false
24
+
25
+ Style/IfInsideElse:
23
26
  Enabled: false
data/README.md CHANGED
@@ -36,6 +36,8 @@ db
36
36
 
37
37
  ```
38
38
 
39
+ More info can be found at [rubydoc](http://www.rubydoc.info/gems/heliodor)
40
+
39
41
  ## Development
40
42
 
41
43
  After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -43,6 +43,21 @@ class Heliodor::DB
43
43
  end
44
44
  end
45
45
 
46
+ # Deletes given table
47
+ # @param table [String]
48
+ # @return [self]
49
+ def delete(table)
50
+ if @tsafe
51
+ @mutex.synchronize do
52
+ @dat.delete(table)
53
+ write(dat)
54
+ end
55
+ else
56
+ write(dat)
57
+ @dat.delete(table)
58
+ end
59
+ end
60
+
46
61
  # Returns array of table names
47
62
  # @return [Array<String>] Array of table names
48
63
  def tables
@@ -125,11 +125,12 @@ class Heliodor::Query
125
125
  self
126
126
  end
127
127
 
128
- # Deletes current table. WARNING: writes changes to database
128
+ # Deletes matching items
129
129
  # @return [self]
130
- def delete
130
+ def delete(dat = {})
131
131
  actions << {
132
- 'type' => 'delete'
132
+ 'type' => 'delete',
133
+ 'dat' => dat
133
134
  }
134
135
  self
135
136
  end
@@ -50,10 +50,24 @@ class Heliodor::Query
50
50
  @dat = @full[@table]
51
51
  end
52
52
 
53
- def _delete
54
- @full.delete @table
55
- @db.write(@full)
56
- @dat = nil
53
+ def _delete(dat)
54
+ d = @dat
55
+ @dat = d.map do |i|
56
+ if dat.class == Hash
57
+ if i >= dat
58
+ nil
59
+ else
60
+ i
61
+ end
62
+ else
63
+ if i == dat
64
+ nil
65
+ else
66
+ i
67
+ end
68
+ end
69
+ end
70
+ @dat
57
71
  end
58
72
 
59
73
  def _write
@@ -83,7 +97,7 @@ class Heliodor::Query
83
97
  when 'rename'
84
98
  _rename(action['to'])
85
99
  when 'delete'
86
- _delete
100
+ _delete(actopm['dat'])
87
101
  when 'write'
88
102
  _write
89
103
  else
@@ -1,3 +1,3 @@
1
1
  module Heliodor
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.1.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heliodor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nickolay
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-08 00:00:00.000000000 Z
11
+ date: 2017-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler