datastorage 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 +7 -0
- data/lib/datastore.rb +107 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7361caec30b9151b286cf7b5026e7b634c12f759ebf726af9e6da4290889c7bc
|
4
|
+
data.tar.gz: 98ce98667cd98b257cb046205ec66e85d45fb5358087315bd1ef5589724b3a5f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9dee928cdc34af1b0eb9f2eded6d569d9ef36bc3cc19907d91863b48df862470b34a5521d40beadeda8d3f13af344e3bb7a5a88b30259bbfa57801b89a4efea6
|
7
|
+
data.tar.gz: 0cb4df6ef0df2d828650e3366693510f83964061e1943556dadf75da41abfc53511a8d54c0ef52cc3efe76f8cb5067c26034bebe054bef68805545b7550378a5
|
data/lib/datastore.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
class Datastorage
|
2
|
+
$datafile = ""
|
3
|
+
$existence = false # Variable usually used to check if a key exists in a file.
|
4
|
+
def self::open file
|
5
|
+
$datafile = file
|
6
|
+
return true
|
7
|
+
end
|
8
|
+
|
9
|
+
def self::parse
|
10
|
+
if $datafile == "" || !File.exist?($datafile)
|
11
|
+
return false
|
12
|
+
end
|
13
|
+
hashmap = Hash.new
|
14
|
+
File.open($datafile, "r") do |f|
|
15
|
+
f.each_line do |line|
|
16
|
+
key, value = line.split(" | ")
|
17
|
+
hashmap[key] = value
|
18
|
+
end
|
19
|
+
end
|
20
|
+
return hashmap
|
21
|
+
end
|
22
|
+
|
23
|
+
def self::write wkey, value
|
24
|
+
if $datafile == "" || !File.exist?($datafile)
|
25
|
+
return false
|
26
|
+
end
|
27
|
+
File.open($datafile, "r") do |f|
|
28
|
+
f.each_line do |line|
|
29
|
+
key, value = line.split(" | ")
|
30
|
+
if key == wkey
|
31
|
+
return false # Key already exists.
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
File.open($datafile, "r+") do |f|
|
36
|
+
f.puts "#{wkey} | #{value}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self::update coolkey, newvalue
|
41
|
+
if $datafile == "" || !File.exist?($datafile)
|
42
|
+
return false
|
43
|
+
end
|
44
|
+
File.open($datafile, "r") do |f|
|
45
|
+
f.each_line do |line|
|
46
|
+
key, value = line.split(" | ")
|
47
|
+
if key.to_s == coolkey.to_s
|
48
|
+
$existence = true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
if $existence == false
|
52
|
+
return false
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
hashmap = Hash.new
|
57
|
+
File.open($datafile, "r") do |f|
|
58
|
+
f.each_line do |line|
|
59
|
+
key, value = line.split(" | ")
|
60
|
+
hashmap[key] = value
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
File.open($datafile, "w+") do |f|
|
65
|
+
hashmap.each do |key, value|
|
66
|
+
if key == coolkey
|
67
|
+
f.puts "#{key} | #{newvalue}"
|
68
|
+
else
|
69
|
+
f.puts "#{key} | #{value}"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def self::delete sadkey
|
76
|
+
if $datafile == "" || !File.exist?($datafile)
|
77
|
+
return false
|
78
|
+
end
|
79
|
+
# Verify that the key exists in the file.
|
80
|
+
File.open($datafile, "r") do |f|
|
81
|
+
f.each_line do |line|
|
82
|
+
key, value = line.split(" | ")
|
83
|
+
if key.to_s == sadkey.to_s
|
84
|
+
$existence = true
|
85
|
+
end
|
86
|
+
end
|
87
|
+
if $existence == false
|
88
|
+
return false
|
89
|
+
end
|
90
|
+
end
|
91
|
+
hashmap = Hash.new
|
92
|
+
File.open($datafile, "r") do |f|
|
93
|
+
f.each_line do |line|
|
94
|
+
key, value = line.split(" | ")
|
95
|
+
hashmap[key] = value
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
File.open($datafile, "w+") do |f|
|
100
|
+
hashmap.each do |key, value|
|
101
|
+
if key != sadkey
|
102
|
+
f.puts "#{key} | #{value}"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: datastorage
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '1'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ryuzaki Ikari
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-08-06 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Simple datastorage gem for ruby. It stores key value pairs in a file
|
14
|
+
seperated by a " | ".
|
15
|
+
email: ikari.ryuzaki@mailfence.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/datastore.rb
|
21
|
+
homepage: https://rubygems.org/gems/datastore
|
22
|
+
licenses:
|
23
|
+
- GPL-3.0
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubygems_version: 3.1.2
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: A simple datastorage gem for ruby. It stores data in a file.
|
44
|
+
test_files: []
|