ssd 0.1.3 → 0.1.4
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 +4 -4
- data/README.md +13 -13
- data/lib/ssd/version.rb +1 -1
- metadata +1 -3
- data/specs/spec_helper.rb +0 -4
- data/specs/ssd_spec.rb +0 -65
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2605f4609985a589764b095ef34281cb456d659
|
4
|
+
data.tar.gz: 6016958378c53abdc55b416c6ae344b6fb586bdd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95d45c276b8cacb39cc8d7ba601eb01859bd462da841d77af9026e49a449b0f4e767b3910c38f60ee7194d5aa8a40e201116d54d2c422ab0216dfe5d20dc0424
|
7
|
+
data.tar.gz: 85674e3463f0bed1ab9c346b050b9147281342ff329b1a688d4887d0ed3862254a4e1ae161b0cfa646fe6e5bdb23541ed32b24c10ba10af7837d1156b8c55bb2
|
data/README.md
CHANGED
@@ -1,26 +1,26 @@
|
|
1
1
|
What is SSD?
|
2
2
|
==================
|
3
|
-
SSD
|
3
|
+
SSD is an append-only, file-based, immutable key-value store for Microservices written in Ruby.
|
4
4
|
|
5
5
|
Key Features
|
6
6
|
=================
|
7
|
-
- **Scalable file
|
8
|
-
- **Immutable**
|
9
|
-
- **Fault
|
10
|
-
- **Measurably
|
11
|
-
- **
|
12
|
-
- **
|
13
|
-
- **
|
14
|
-
- **Key-based rolling-forward\rolling-back**.
|
15
|
-
- **Super easy to learn and use** (up & running in mins).
|
7
|
+
- **Scalable** file-based design (each key gets its own file).
|
8
|
+
- **Immutable Append-only** tracks data evolution over time via out-of-the-box UTC timestamped appends (*accountants don't use erasers, otherwise they go to jail*).
|
9
|
+
- **Fault Tolerance** (out-of-the-box transactional operations).
|
10
|
+
- **Zero External Dependencies for a Measurably Low Technical Debt** (a well-maintained consciously clean lightweight library that prioritizes the sanity of your codebase and takes measures to **NEVER** complect it).
|
11
|
+
- **Schemaless** (easily meets your data evolution needs).
|
12
|
+
- **Key-based Rolling-forward\Rolling-back**.
|
13
|
+
- **Super Easy to Learn and Use** (up & running in mins).
|
16
14
|
|
17
15
|
TODO
|
18
16
|
======
|
19
|
-
-
|
20
|
-
- **JSON objects** (based on ruby's native pstore).
|
21
|
-
- **RESTful HTTP/JSON API Endpoint**.
|
17
|
+
- Out-of-the-box Data Archiving
|
22
18
|
- REPL console
|
19
|
+
- RAMDisk-based Server
|
23
20
|
- Server Web-based Admin Interface
|
21
|
+
- Strict hard-coded Security-first SHA256 Encryption policy (implment your own logging for intercepting keys required for decrypting data).
|
22
|
+
- JSON objects (based on ruby's native pstore).
|
23
|
+
- RESTful HTTP/JSON API Endpoint.
|
24
24
|
|
25
25
|
Use Cases
|
26
26
|
==========
|
data/lib/ssd/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ssd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zotherstupidguy
|
@@ -73,8 +73,6 @@ files:
|
|
73
73
|
- lib/ssd.rb
|
74
74
|
- lib/ssd/version.rb
|
75
75
|
- logo.png
|
76
|
-
- specs/spec_helper.rb
|
77
|
-
- specs/ssd_spec.rb
|
78
76
|
- ssd.gemspec
|
79
77
|
homepage: https://github.com/ssd-rb
|
80
78
|
licenses:
|
data/specs/spec_helper.rb
DELETED
data/specs/ssd_spec.rb
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
require_relative "./spec_helper"
|
2
|
-
|
3
|
-
describe SSD do
|
4
|
-
|
5
|
-
before do
|
6
|
-
|
7
|
-
class User
|
8
|
-
include SSD
|
9
|
-
attr_accessor :id, :first_name, :last_name, :location
|
10
|
-
|
11
|
-
def initialize id=""
|
12
|
-
@ssd = id
|
13
|
-
end
|
14
|
-
|
15
|
-
def id= id
|
16
|
-
@id = id
|
17
|
-
@ssd = @id
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
@generated_ssd = Random.new.seed
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "#append!" do
|
25
|
-
it "saves an object to the database" do
|
26
|
-
#skip
|
27
|
-
@user = User.new
|
28
|
-
@user.ssd = @generated_ssd
|
29
|
-
@user.append!
|
30
|
-
@user.ssd.must_equal @generated_ssd
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
describe "#read" do
|
35
|
-
it "fetches an object from the database" do
|
36
|
-
# skip
|
37
|
-
@user = User.new
|
38
|
-
@user.ssd = @generated_ssd
|
39
|
-
@user.append!
|
40
|
-
user = User.ssd(@generated_ssd)
|
41
|
-
user.ssd.must_equal @generated_ssd
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "an append!-only operations" do
|
46
|
-
it "it keeps adding new objects" do
|
47
|
-
@user = User.new
|
48
|
-
|
49
|
-
@user.ssd = @generated_ssd
|
50
|
-
@user.location = "Egypt"
|
51
|
-
@user.append!
|
52
|
-
|
53
|
-
@user = User.ssd(@generated_ssd)
|
54
|
-
@user.location = "Brazil"
|
55
|
-
@user.append!
|
56
|
-
|
57
|
-
@user = User.ssd(@generated_ssd)
|
58
|
-
@user.location = "France"
|
59
|
-
@user.append!
|
60
|
-
|
61
|
-
User.count(@generated_ssd).must_equal 3
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|