gembase 1.0.3 → 1.0.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/gembase.gemspec +1 -1
- data/lib/gembase.rb +54 -64
- data/lib/services.rb +23 -63
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0d61c434709d93ce0dd83191f5a7be0629f29a8143a9a0cdc388a4905692c8b
|
4
|
+
data.tar.gz: 24be9d9c13eeacc61631c67547c10459d3818c0d882dad6979a53507ca3cb8a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cfa072e1bedc937fe59c32e2e52753c0bb2dadf3e0fd1ec6a020221c7c14076c729fbeeaaf598d6fab9edd7c527e8623f5869e2215e48ec7aab829dd9c9b8b7
|
7
|
+
data.tar.gz: 602e6500e3b3dfabdc41da9e1be98070a6e2fbc7f958e4c0d81d2268d21fbb2ff6742a1f863c28e14babb9cdd8d26e68891a0f2860157fe4d636eaa7b1c63354
|
data/gembase.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'gembase'
|
3
|
-
s.version = '1.0.
|
3
|
+
s.version = '1.0.4'
|
4
4
|
s.date = '2020-02-26'
|
5
5
|
s.summary = "Gembase is a YAML database manager gem for Ruby."
|
6
6
|
s.description = "Gembase is a YAML database manager gem for Ruby. Very powerful, simple and effective."
|
data/lib/gembase.rb
CHANGED
@@ -9,6 +9,7 @@ require_relative 'services'
|
|
9
9
|
|
10
10
|
# @author NTBBloodbath
|
11
11
|
module Gembase
|
12
|
+
attr_reader :data, :dbo
|
12
13
|
|
13
14
|
# @!method settings(db, protect_db, path)
|
14
15
|
# Settings for your database manager
|
@@ -50,11 +51,9 @@ module Gembase
|
|
50
51
|
@protect_db = protect_db.to_s
|
51
52
|
if @protect_db == 'true'
|
52
53
|
system('clear')
|
53
|
-
Errors::no_dependency('package', 'figlet', '-c Logger')
|
54
54
|
puts(%x(figlet -c Logger).colorize(:red), '====================================================================================='.colorize(:light_black), "\n", ">> [SecurityEnabled] | Now you can remove, modify, encrypt and rename your db.".colorize(:light_red))
|
55
55
|
elsif @protect_db == 'false'
|
56
56
|
system('clear')
|
57
|
-
Errors::no_dependency('package', 'figlet', '-c Logger')
|
58
57
|
puts(%x(figlet -c Logger).colorize(:red), '====================================================================================='.colorize(:light_black))
|
59
58
|
puts "\n>> [SecurityBreach] | If you don't protect your db, it'll be vulnerable to hackers. \n You must need to enable protection and use Gembase.encrypt".colorize(:light_red)
|
60
59
|
end
|
@@ -82,10 +81,14 @@ module Gembase
|
|
82
81
|
if @dbf == 0
|
83
82
|
if @path.eql?('root')
|
84
83
|
FileUtils.touch("#{db}.rudb")
|
84
|
+
@dbo = File.open("#{db}.rudb")
|
85
85
|
else
|
86
86
|
FileUtils.touch("#{@path}/#{db}.rudb")
|
87
|
+
@dbo = File.open("#{@path}/#{db}.rudb")
|
87
88
|
end
|
88
89
|
end
|
90
|
+
|
91
|
+
@data = YAML.load(@dbo)
|
89
92
|
end
|
90
93
|
|
91
94
|
# @!method create_category(db, category)
|
@@ -154,17 +157,9 @@ module Gembase
|
|
154
157
|
e
|
155
158
|
end
|
156
159
|
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
else
|
161
|
-
@@database = File.open("#{@path}/#{db}.rudb")
|
162
|
-
end
|
163
|
-
|
164
|
-
@@data = YAML.load(@@database)
|
165
|
-
@@data[parent_category.to_s].store(nested_category.to_s, {})
|
166
|
-
File.write(@@database, @@data.to_yaml)
|
167
|
-
end
|
160
|
+
@data
|
161
|
+
@data[parent_category.to_s].store(nested_category.to_s, {})
|
162
|
+
File.write(@dbo, @data.to_yaml)
|
168
163
|
end
|
169
164
|
|
170
165
|
# @!method add_object(db, category, key, value)
|
@@ -199,9 +194,9 @@ module Gembase
|
|
199
194
|
|
200
195
|
puts "\n>> [WARNING] | add_object Method is deprecated. Please use create_object Method instead.".colorize(:red)
|
201
196
|
if @dbf == 0
|
202
|
-
|
203
|
-
|
204
|
-
|
197
|
+
@dbo
|
198
|
+
@data
|
199
|
+
@data[category.to_s].store(key.to_s, value)
|
205
200
|
end
|
206
201
|
end
|
207
202
|
|
@@ -236,10 +231,10 @@ module Gembase
|
|
236
231
|
|
237
232
|
if @dbf == 0
|
238
233
|
if category.to_s.length.zero?
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
File.write(
|
234
|
+
@dbo
|
235
|
+
@data
|
236
|
+
@data.store(key.to_s, value)
|
237
|
+
File.write(@dbo, @data.to_yaml)
|
243
238
|
else
|
244
239
|
begin
|
245
240
|
raise Errors::invalid_param('category', 'String', 'Gembase.create_object') until category.is_a?(String)
|
@@ -247,21 +242,21 @@ module Gembase
|
|
247
242
|
e
|
248
243
|
end
|
249
244
|
if subcategory.to_s.length.zero?
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
File.write(
|
245
|
+
@dbo
|
246
|
+
@data
|
247
|
+
@data
|
248
|
+
@data[category.to_s].store(key.to_s, value)
|
249
|
+
File.write(@dbo, @data.to_yaml)
|
255
250
|
else
|
256
251
|
begin
|
257
252
|
raise Errors::invalid_param('subcategory', 'String', 'Gembase.create_object') until subcategory.is_a?(String)
|
258
253
|
rescue => e
|
259
254
|
e
|
260
255
|
end
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
File.write(
|
256
|
+
@dbo
|
257
|
+
@data
|
258
|
+
@data[category.to_s][subcategory.to_s].store(key.to_s, value)
|
259
|
+
File.write(@dbo, @data.to_yaml)
|
265
260
|
end
|
266
261
|
end
|
267
262
|
end
|
@@ -299,16 +294,16 @@ module Gembase
|
|
299
294
|
|
300
295
|
if @dbf == 0
|
301
296
|
if category.to_s.length.zero?
|
302
|
-
|
303
|
-
|
304
|
-
|
297
|
+
@dbo
|
298
|
+
@data
|
299
|
+
@data.delete(key.to_s)
|
305
300
|
if @path.eql?('root')
|
306
301
|
File.open("#{db}.rudb", 'w+') do |f|
|
307
|
-
f.write(
|
302
|
+
f.write(@data.to_yaml)
|
308
303
|
end
|
309
304
|
else
|
310
305
|
File.open("#{@path}/#{db}.rudb", 'w+') do |f|
|
311
|
-
f.write(
|
306
|
+
f.write(@data.to_yaml)
|
312
307
|
end
|
313
308
|
end
|
314
309
|
else
|
@@ -318,11 +313,11 @@ module Gembase
|
|
318
313
|
rescue => e
|
319
314
|
e
|
320
315
|
end
|
321
|
-
|
322
|
-
|
323
|
-
|
316
|
+
@dbo
|
317
|
+
@data
|
318
|
+
@data[category.to_s].delete(key.to_s)
|
324
319
|
File.open("#{db}.rudb", 'w+') do |f|
|
325
|
-
f.write(
|
320
|
+
f.write(@data.to_yaml)
|
326
321
|
end
|
327
322
|
else
|
328
323
|
begin
|
@@ -330,16 +325,16 @@ module Gembase
|
|
330
325
|
rescue => e
|
331
326
|
e
|
332
327
|
end
|
333
|
-
|
334
|
-
|
335
|
-
|
328
|
+
@dbo
|
329
|
+
@data
|
330
|
+
@data[category.to_s][subcategory.to_s].delete(key.to_s)
|
336
331
|
if @path.eql?('root')
|
337
332
|
File.open("#{db}.rudb", 'w+') do |f|
|
338
|
-
f.write(
|
333
|
+
f.write(@data.to_yaml)
|
339
334
|
end
|
340
335
|
else
|
341
336
|
File.open("#{@path}/#{db}.rudb", 'w+') do |f|
|
342
|
-
f.write(
|
337
|
+
f.write(@data.to_yaml)
|
343
338
|
end
|
344
339
|
end
|
345
340
|
end
|
@@ -380,10 +375,10 @@ module Gembase
|
|
380
375
|
|
381
376
|
if @dbf == 0
|
382
377
|
if category.to_s.length.zero?
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
File.write(
|
378
|
+
@dbo
|
379
|
+
@data
|
380
|
+
@data[key.to_s] = new_value
|
381
|
+
File.write(@dbo, @data.to_yaml)
|
387
382
|
else
|
388
383
|
begin
|
389
384
|
raise Errors::invalid_param('category', 'String', 'Gembase.change_object') until category.is_a?(String)
|
@@ -391,20 +386,20 @@ module Gembase
|
|
391
386
|
e
|
392
387
|
end
|
393
388
|
if subcategory.to_s.length.zero?
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
File.write(
|
389
|
+
@dbo
|
390
|
+
@data
|
391
|
+
@data[category.to_s][key.to_s] = new_value
|
392
|
+
File.write(@dbo, @data.to_yaml)
|
398
393
|
else
|
399
394
|
begin
|
400
395
|
raise Errors::invalid_param('subcategory', 'String', 'Gembase.change_object') until subcategory.is_a?(String)
|
401
396
|
rescue => e
|
402
397
|
e
|
403
398
|
end
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
File.write(
|
399
|
+
@dbo
|
400
|
+
@data
|
401
|
+
@data[category.to_s][subcategory.to_s][key.to_s] = new_value
|
402
|
+
File.write(@dbo, @data.to_yaml)
|
408
403
|
end
|
409
404
|
end
|
410
405
|
end
|
@@ -426,8 +421,8 @@ module Gembase
|
|
426
421
|
end
|
427
422
|
|
428
423
|
if @dbf == 0
|
429
|
-
|
430
|
-
|
424
|
+
@dbo
|
425
|
+
@data
|
431
426
|
end
|
432
427
|
end
|
433
428
|
|
@@ -445,8 +440,8 @@ module Gembase
|
|
445
440
|
end
|
446
441
|
|
447
442
|
if @dbf == 0
|
448
|
-
|
449
|
-
|
443
|
+
@dbo
|
444
|
+
@data.to_yaml
|
450
445
|
end
|
451
446
|
end
|
452
447
|
|
@@ -473,11 +468,9 @@ module Gembase
|
|
473
468
|
if @encrypted == 0
|
474
469
|
puts("\n>> Encrypting your database...".colorize(:light_black), "\n>> Recomendations: set a secure password with more than 8 characters and save\n it in a secure site".colorize(:light_black), "\n")
|
475
470
|
if @path.eql?('root')
|
476
|
-
Errors::no_dependency('gem', 'yaml_vault', "encrypt #{db}.rudb -o #{db}.erudb")
|
477
471
|
system("yaml_vault encrypt #{db}.rudb -o #{db}.erudb")
|
478
472
|
system("rm #{db}.rudb")
|
479
473
|
else
|
480
|
-
Errors::no_dependency('gem', 'yaml_vault', "encrypt #{@path}/#{db}.rudb -o #{@path}/#{db}.erudb")
|
481
474
|
system("yaml_vault encrypt #{@path}/#{db}.rudb -o #{@path}/#{db}.erudb")
|
482
475
|
system("rm #{@path}/#{db}.rudb")
|
483
476
|
end
|
@@ -509,10 +502,8 @@ module Gembase
|
|
509
502
|
if @encrypted != 0
|
510
503
|
puts "\n>> Decrypting your database...".colorize(:light_black)
|
511
504
|
if @path.eql('root')
|
512
|
-
Errors::no_dependency('gem', 'yaml_vault', "decrypt #{db}.erudb -o #{db}.rudb")
|
513
505
|
system("yaml_vault decrypt #{db}.erudb -o #{db}.rudb")
|
514
506
|
else
|
515
|
-
Errors::no_dependency('gem', 'yaml_vault', "decrypt #{db}.erudb -o #{db}.rudb")
|
516
507
|
system("yaml_vault encrypt #{@path}/#{db}.erudb -o #{@path}/#{db}.rudb")
|
517
508
|
end
|
518
509
|
elsif @encrypted == 0
|
@@ -622,7 +613,6 @@ module Gembase
|
|
622
613
|
#
|
623
614
|
# @since 1.0.0
|
624
615
|
def self.working_db
|
625
|
-
Errors::no_dependency('package', 'figlet', '-c Viewer')
|
626
616
|
puts("\n", '====================================================================================='.colorize(:light_black), "\n\n", %x(figlet -c Viewer).colorize(:red), '====================================================================================='.colorize(:light_black))
|
627
617
|
files = 'find . -wholename "*.rudb" && find . -wholename "*.erudb"'
|
628
618
|
count = 'find . -wholename "*.rudb" | wc -l && find . -wholename "*.erudb" | wc -l'
|
data/lib/services.rb
CHANGED
@@ -18,9 +18,9 @@ class FalseClass
|
|
18
18
|
end
|
19
19
|
|
20
20
|
class Errors < StandardError
|
21
|
-
attr_reader :dependency, :
|
21
|
+
attr_reader :dependency, :param, :type, :method, :db
|
22
22
|
|
23
|
-
def self.no_dependency(type, dependency
|
23
|
+
def self.no_dependency(type, dependency)
|
24
24
|
begin
|
25
25
|
raise Errors.invalid_param('type', 'String', 'Errors.invalid_param') until type.is_a?(String)
|
26
26
|
rescue => e
|
@@ -33,75 +33,35 @@ class Errors < StandardError
|
|
33
33
|
e
|
34
34
|
end
|
35
35
|
|
36
|
-
if
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
if
|
36
|
+
if system("#{dependency}") == nil
|
37
|
+
puts "\n>> [RuntimeError] | The package #{dependency} isn't installed. \n Do you want to install it? [y/n]".colorize(:light_red)
|
38
|
+
installation = gets.chomp
|
39
|
+
|
40
|
+
case installation
|
41
|
+
when "y"
|
42
|
+
if Dir.home == "/data/data/com.termux/files/home" # Termux installation
|
43
|
+
if type.eql?('package')
|
44
|
+
system("apt install #{dependency}")
|
45
|
+
elsif type.eql?('gem')
|
46
|
+
system("gem install #{dependency}")
|
47
|
+
end
|
48
|
+
else # Linux installation
|
49
|
+
if File.exist?("/usr/bin/apt-get") then # Debian-based OS
|
44
50
|
if type.eql?('package')
|
45
|
-
system("apt install #{dependency}")
|
51
|
+
system("sudo apt-get install #{dependency}")
|
46
52
|
elsif type.eql?('gem')
|
47
|
-
system("gem install #{dependency}")
|
48
|
-
end
|
49
|
-
else # Linux installation
|
50
|
-
if File.exist?("/usr/bin/apt-get") then # Debian-based OS
|
51
|
-
if type.eql?('package')
|
52
|
-
system("sudo apt-get install #{dependency}")
|
53
|
-
elsif type.eql?('gem')
|
54
|
-
system("sudo gem install #{dependency}")
|
55
|
-
end
|
56
|
-
elsif File.exist?("/usr/bin/pacman") then # Arch OS
|
57
|
-
if type.eql?('package')
|
58
|
-
system("sudo pacman -S #{dependency}")
|
59
|
-
elsif type.eql?('gem')
|
60
|
-
system("sudo gem install #{dependency}")
|
61
|
-
end
|
53
|
+
system("sudo gem install #{dependency}")
|
62
54
|
end
|
63
|
-
|
64
|
-
when "n"
|
65
|
-
puts "\n>> [RuntimeError] | You must install the dependencies so that the \n administrator has a good functioning".colorize(:light_red)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
else
|
69
|
-
begin
|
70
|
-
raise Errors.invalid_param('argument', 'String', 'Errors.invalid_param') until argument.is_a?(String)
|
71
|
-
rescue => e
|
72
|
-
e
|
73
|
-
end
|
74
|
-
|
75
|
-
if !system("#{dependency}", "#{argument}") then
|
76
|
-
puts "\n>> [RuntimeError] | The package #{dependency} isn't installed. \n Do you want to install it? [y/n]".colorize(:light_red)
|
77
|
-
installation = gets.chomp
|
78
|
-
|
79
|
-
case installation
|
80
|
-
when "y"
|
81
|
-
if Dir.home == "/data/data/com.termux/files/home" # Termux installation
|
55
|
+
elsif File.exist?("/usr/bin/pacman") then # Arch OS
|
82
56
|
if type.eql?('package')
|
83
|
-
system("
|
57
|
+
system("sudo pacman -S #{dependency}")
|
84
58
|
elsif type.eql?('gem')
|
85
|
-
system("gem install #{dependency}")
|
86
|
-
end
|
87
|
-
else # Linux installation
|
88
|
-
if File.exist?("/usr/bin/apt-get") then # Debian-based OS
|
89
|
-
if type.eql?('package')
|
90
|
-
system("sudo apt-get install #{dependency}")
|
91
|
-
elsif type.eql?('gem')
|
92
|
-
system("sudo gem install #{dependency}")
|
93
|
-
end
|
94
|
-
elsif File.exist?("/usr/bin/pacman") then # Arch OS
|
95
|
-
if type.eql?('package')
|
96
|
-
system("sudo pacman -S #{dependency}")
|
97
|
-
elsif type.eql?('gem')
|
98
|
-
system("sudo gem install #{dependency}")
|
99
|
-
end
|
59
|
+
system("sudo gem install #{dependency}")
|
100
60
|
end
|
101
61
|
end
|
102
|
-
when "n"
|
103
|
-
puts "\n>> [RuntimeError] | You must install the dependencies so that the \n administrator has a good functioning".colorize(:light_red)
|
104
62
|
end
|
63
|
+
when "n"
|
64
|
+
puts "\n>> [RuntimeError] | You must install the dependencies so that the \n administrator has a good functioning".colorize(:light_red)
|
105
65
|
end
|
106
66
|
end
|
107
67
|
end
|