script_storage 1.0.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 +7 -0
- data/lib/script_storage.rb +70 -0
- data/lib/script_storage_item.rb +41 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f949960c5eb7608c15c8ccdeaa835833aaa4898eb55db0a48790ecde0fdde767
|
4
|
+
data.tar.gz: d2d9ec230b174db3109b1f86372d907d76691d9ff964a106fa38c5ffb10c5b52
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 76f41ed76f67b5173bf89349eb2f0fe07cc4e67bc200aec7ba15a06a0c2a48c064c655cc1ec1278a473f43b0b62e8c6cc2328cddcdae78c94dc6c9d097a154be
|
7
|
+
data.tar.gz: 6670a8ee0ccae78acdf03cee24c8baa3e7037723fb5fed3559673cb205cfdb2bc64f528c41c1030855e03743a6b75f304f6f12ca362804bc36ac2c48896141b9
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'script_storage_item.rb'
|
2
|
+
|
3
|
+
@data = []
|
4
|
+
|
5
|
+
def write_file
|
6
|
+
file = File.open(File.basename($0))
|
7
|
+
file_data = file.read.split("__END__\n")[0]+"__END__\n"
|
8
|
+
|
9
|
+
@data.each do |v|
|
10
|
+
file_data += "#{v.show}\n"
|
11
|
+
end
|
12
|
+
|
13
|
+
File.write(File.basename($0), file_data)
|
14
|
+
file.close
|
15
|
+
end
|
16
|
+
|
17
|
+
def read_storage
|
18
|
+
file = File.open(File.basename($0))
|
19
|
+
file_data = file.read.split("__END__\n").last
|
20
|
+
|
21
|
+
file_data.scan(/([A-z]*)(.*[()]*):(.*)/).each do |raw|
|
22
|
+
type = raw[1].strip[1..-2]
|
23
|
+
type = '' if type == nil
|
24
|
+
|
25
|
+
case type
|
26
|
+
when 'array'
|
27
|
+
value = []
|
28
|
+
|
29
|
+
raw[2].strip.split(',').each do |v|
|
30
|
+
value.append(v.strip)
|
31
|
+
end
|
32
|
+
|
33
|
+
@data.append(Item.new(raw[0].strip, value))
|
34
|
+
when 'integer'
|
35
|
+
@data.append(Item.new(raw[0].strip, raw[2].strip.to_i))
|
36
|
+
else
|
37
|
+
@data.append(Item.new(raw[0].strip, raw[2].strip))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
file.close
|
42
|
+
end
|
43
|
+
|
44
|
+
def storage(key)
|
45
|
+
array = @data.select { |item| item.key == key}
|
46
|
+
array.first.value if array.first
|
47
|
+
end
|
48
|
+
|
49
|
+
def write_storage(key, value)
|
50
|
+
if @data.include?(key)
|
51
|
+
@data.each do |v|
|
52
|
+
if v.key == key
|
53
|
+
v.value = value
|
54
|
+
end
|
55
|
+
end
|
56
|
+
else
|
57
|
+
@data.append(Item.new(key, value))
|
58
|
+
end
|
59
|
+
|
60
|
+
write_file
|
61
|
+
end
|
62
|
+
|
63
|
+
def delete_storage(key)
|
64
|
+
return unless @data.include?(key)
|
65
|
+
|
66
|
+
@data.delete(key)
|
67
|
+
write_file
|
68
|
+
end
|
69
|
+
|
70
|
+
read_storage
|
@@ -0,0 +1,41 @@
|
|
1
|
+
class Item
|
2
|
+
|
3
|
+
attr_accessor :key, :value
|
4
|
+
|
5
|
+
def initialize(key, value)
|
6
|
+
|
7
|
+
case value.class.to_s.downcase
|
8
|
+
when 'array'
|
9
|
+
@value = []
|
10
|
+
|
11
|
+
value.each do |v|
|
12
|
+
@value.append(v)
|
13
|
+
end
|
14
|
+
else
|
15
|
+
@value = value
|
16
|
+
end
|
17
|
+
|
18
|
+
@key = key
|
19
|
+
end
|
20
|
+
|
21
|
+
def show
|
22
|
+
type = @value.class.to_s.downcase
|
23
|
+
|
24
|
+
case type
|
25
|
+
when 'string'
|
26
|
+
"#{key}: #{value}"
|
27
|
+
when 'array'
|
28
|
+
"#{key}(#{type}): #{@value.join(', ')}"
|
29
|
+
else
|
30
|
+
"#{key}(#{type}): #{value}"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def ==(other)
|
35
|
+
if other.class == String
|
36
|
+
@key == other
|
37
|
+
else
|
38
|
+
@key == other.key
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: script_storage
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- TauchMe
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-01-23 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A simple gem that lets you store basic data in your ruby script without
|
14
|
+
needing to create a separate file for it
|
15
|
+
email: tauchme@mocchimochi.dev
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/script_storage.rb
|
21
|
+
- lib/script_storage_item.rb
|
22
|
+
homepage: https://rubygems.org/gems/script_storage
|
23
|
+
licenses:
|
24
|
+
- MIT
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubygems_version: 3.4.1
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: Save simple data in your script
|
45
|
+
test_files: []
|