script_storage 1.1.0 → 1.2.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 +4 -4
- data/lib/script_storage.rb +60 -56
- data/lib/script_storage_item.rb +34 -35
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7425053f040f408e875b3fe99572f291c25cb6cc05dd7277d7b8d17af2ea239d
|
4
|
+
data.tar.gz: '0284a9a29625c03fa2cbd0095d7c6e4eea90a8da4ab94132e6c42e7321c2de4d'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ebcf69b0987a71ffc401f11874b7744e517f4a3358bc74540ce851809f26a96cf237ab62582f1aea2f6826eb50f619f65dbfbd9d969c30b88f509e9184f09f8
|
7
|
+
data.tar.gz: a0bbc4aeb3010e2220c11d1e8879ba1366bb2c008c0e21ad30963a6f098e93733ce475340e3edcb28ea65ffb8173e3a4df96deb797334034e4e7bdca744e48bc
|
data/lib/script_storage.rb
CHANGED
@@ -1,77 +1,81 @@
|
|
1
|
-
require 'script_storage_item
|
1
|
+
require 'script_storage_item'
|
2
2
|
|
3
3
|
@data = []
|
4
4
|
|
5
5
|
def write_file
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
File.open(File.basename($PROGRAM_NAME)) do |file|
|
7
|
+
file_data = "#{file.read.split("\n__END__\n")[0]}\n__END__\n"
|
8
|
+
|
9
|
+
@data.each do |v|
|
10
|
+
file_data += "#{v.show}\n"
|
11
|
+
end
|
12
|
+
|
13
|
+
File.write(File.basename($PROGRAM_NAME), file_data)
|
14
|
+
end
|
15
15
|
end
|
16
16
|
|
17
17
|
def load_storage
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
18
|
+
File.open(File.basename($PROGRAM_NAME)) do |file|
|
19
|
+
file_content = file.read
|
20
|
+
|
21
|
+
break if file_content.split("\n__END__\n").length == 1
|
22
|
+
|
23
|
+
file_data = file_content.split("\n__END__\n").last
|
24
|
+
|
25
|
+
file_data.scan(/([A-z]*)(.*[()]*):(.*)/).each do |raw|
|
26
|
+
type = raw[1].strip[1..-2]
|
27
|
+
type = '' if type == nil
|
28
|
+
|
29
|
+
case type
|
30
|
+
when 'array'
|
31
|
+
value = []
|
32
|
+
|
33
|
+
raw[2].strip.split(',').each do |v|
|
34
|
+
value.append(v.strip)
|
35
|
+
end
|
36
|
+
|
37
|
+
@data.append(Item.new(raw[0].strip, value))
|
38
|
+
when 'integer'
|
39
|
+
@data.append(Item.new(raw[0].strip, raw[2].strip.to_i))
|
40
|
+
else
|
41
|
+
@data.append(Item.new(raw[0].strip, raw[2].strip))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
41
45
|
end
|
42
46
|
|
43
47
|
def read_storage(key)
|
44
|
-
|
45
|
-
|
48
|
+
array = @data.select { |item| item.key == key }
|
49
|
+
array.first&.value
|
46
50
|
end
|
47
51
|
|
48
52
|
def write_storage(key, value)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
53
|
+
if @data.include?(key)
|
54
|
+
@data.each do |v|
|
55
|
+
if v.key == key
|
56
|
+
v.value = value
|
57
|
+
end
|
58
|
+
end
|
59
|
+
else
|
60
|
+
@data.append(Item.new(key, value))
|
61
|
+
end
|
62
|
+
|
63
|
+
write_file
|
60
64
|
end
|
61
65
|
|
62
66
|
def delete_storage(key)
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
+
return unless @data.include?(key)
|
68
|
+
|
69
|
+
@data.delete(key)
|
70
|
+
write_file
|
67
71
|
end
|
68
72
|
|
69
|
-
def delete_all_storage
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
73
|
+
def delete_all_storage
|
74
|
+
File.open(File.basename($PROGRAM_NAME)) do |file|
|
75
|
+
file_data = file.read.split("\n__END__\n")[0]
|
76
|
+
|
77
|
+
File.write(File.basename($PROGRAM_NAME), file_data)
|
78
|
+
end
|
75
79
|
end
|
76
80
|
|
77
81
|
load_storage
|
data/lib/script_storage_item.rb
CHANGED
@@ -1,40 +1,39 @@
|
|
1
1
|
class Item
|
2
|
+
attr_accessor :key, :value
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
@value = value
|
15
|
-
end
|
4
|
+
def initialize(key, value)
|
5
|
+
case value.class.to_s.downcase
|
6
|
+
when 'array'
|
7
|
+
@value = []
|
8
|
+
|
9
|
+
value.each do |v|
|
10
|
+
@value.append(v)
|
11
|
+
end
|
12
|
+
else
|
13
|
+
@value = value
|
14
|
+
end
|
16
15
|
|
17
16
|
@key = key
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
end
|
18
|
+
|
19
|
+
def show
|
21
20
|
type = @value.class.to_s.downcase
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
end
|
21
|
+
|
22
|
+
case type
|
23
|
+
when 'string'
|
24
|
+
"#{key}: #{value}"
|
25
|
+
when 'array'
|
26
|
+
"#{key}(#{type}): #{@value.join(', ')}"
|
27
|
+
else
|
28
|
+
"#{key}(#{type}): #{value}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def ==(other)
|
33
|
+
if other.class == String
|
34
|
+
@key == other
|
35
|
+
else
|
36
|
+
@key == other.key
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: script_storage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TauchMe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple gem that lets you store basic data in your ruby script without
|
14
14
|
needing to create a separate file for it
|