geode 0.4.0 → 0.5.0

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
  SHA256:
3
- metadata.gz: c0e61d7408e1968eef5ce7ca4f044ba24ad8c60556f0e447fc4c5053b33e3696
4
- data.tar.gz: a71f1f43281f5c207b7172ce80317e91608f18c226ec707a4a485c27b3ddc916
3
+ metadata.gz: 40101d539252b136e868fd1a800b063480f900d2d6950fdb49692b9b46f2d840
4
+ data.tar.gz: c5169f3c0240530b10c7ecf479dec602d6ac4c1edfffb85fa93ba3713a97a6ed
5
5
  SHA512:
6
- metadata.gz: 85b0de5f20e66ab77782b0a9db839e2888c8f3258335461e20595e8effcab0399b612c1ef53c0cebb34572b7c1d533394dc27a2249919f76570cdb36ad88076a
7
- data.tar.gz: aacbdfd3ae417f3b5d17c8a88ff21975604c33e875a16157a6614eb2418971feefd7bc17cacb644dcd13afcd9115279b910c37d1e78a848113a3c06609d6ade9
6
+ metadata.gz: d92a44091dd02cf1c9a406cf642dc6e906b40177d07081b2f898c0a0c3153d2e43850c4391900f4bc8dcd9294c4f9e7c71306c2467ad5a60a0f84855deeee328
7
+ data.tar.gz: a44edfb5d28948066504fa7d65bf9c331a7b6dc2abb19001a96a9bfcb329a48218412262bbf4fb539a01934d0dbcec7b0392421236ab87666e8fe9146bd977f4
data/lib/geode/redis.rb CHANGED
@@ -26,5 +26,10 @@ module Geode
26
26
  @redis.set @name, Marshal.dump(table)
27
27
  end
28
28
  end
29
+
30
+ def destroy
31
+ @redis.del @name
32
+ nil
33
+ end
29
34
  end
30
35
  end
data/lib/geode/sequel.rb CHANGED
@@ -19,8 +19,7 @@ module Geode
19
19
  connection ||= { adapter: 'postgres' }
20
20
  db = Sequel.connect(connection)
21
21
  db.create_table? :geode do
22
- primary_key :id
23
- String :name
22
+ String :name, primary_key: true
24
23
  File :value
25
24
  end
26
25
 
@@ -29,7 +28,7 @@ module Geode
29
28
 
30
29
  def open
31
30
  store = @db.where(name: @name)
32
- table = if store.first.nil?
31
+ table = if store.empty?
33
32
  store.insert(name: @name, value: '')
34
33
  {}
35
34
  else
@@ -40,5 +39,10 @@ module Geode
40
39
  store.update(value: Sequel.blob(Marshal.dump(table)))
41
40
  end
42
41
  end
42
+
43
+ def destroy
44
+ @db.where(name: @name).delete
45
+ nil
46
+ end
43
47
  end
44
48
  end
data/lib/geode.rb CHANGED
@@ -19,7 +19,7 @@ module Geode
19
19
  # "store.open { |table| table[:key] } #=> 5"
20
20
  # @return [Object] The return value of the block
21
21
  def open
22
- raise NotImplementedError
22
+ raise 'subclasses must implement #open'
23
23
  end
24
24
 
25
25
  # "Peek" inside the store, returning a copy of its table.
@@ -44,5 +44,11 @@ module Geode
44
44
  def [](key)
45
45
  peek[key]
46
46
  end
47
+
48
+ # "Destroy" the store, deleting all data.
49
+ # The store can be opened again, recreating it in a blank state.
50
+ def destroy
51
+ raise 'subclasses must implement #destroy'
52
+ end
47
53
  end
48
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - biqqles
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-16 00:00:00.000000000 Z
11
+ date: 2021-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -76,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: '0'
79
+ version: 2.2.0
80
80
  required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - ">="
@@ -86,5 +86,5 @@ requirements: []
86
86
  rubygems_version: 3.1.2
87
87
  signing_key:
88
88
  specification_version: 4
89
- summary: Elegantly store Ruby objects in Redis or Sequel
89
+ summary: Store Ruby objects in Redis or Sequel
90
90
  test_files: []