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 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: []