heliodor 0.1.0 → 0.1.1

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