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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/datastore.rb +107 -0
  3. 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: []