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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf6fddcce34b4b5ce56ec52b5fe3aee1323638f4a3fa309b10eba5c8c5cd1a53
4
- data.tar.gz: d98d54dbf6e1c8087a08d74e1567a109f1f5443147543383ef7dd02d0d2e39b5
3
+ metadata.gz: 7425053f040f408e875b3fe99572f291c25cb6cc05dd7277d7b8d17af2ea239d
4
+ data.tar.gz: '0284a9a29625c03fa2cbd0095d7c6e4eea90a8da4ab94132e6c42e7321c2de4d'
5
5
  SHA512:
6
- metadata.gz: 07bfa7a4affc367bac09fbc985b77b7bc2c3f3b0e5a35ea253c002246ef0168e2e1143df58c900d4735b39fa445d8d23beb74b05d7afd0ab531ed2524f1c2765
7
- data.tar.gz: 979f819608f1d843ba690a19488a6a6540a33ad82c725427a326f26792ba451e2bddcdb1282a1b3b1ce685a64cd60e37314290183069daf4bf4c3b149e7c08c2
6
+ metadata.gz: 6ebcf69b0987a71ffc401f11874b7744e517f4a3358bc74540ce851809f26a96cf237ab62582f1aea2f6826eb50f619f65dbfbd9d969c30b88f509e9184f09f8
7
+ data.tar.gz: a0bbc4aeb3010e2220c11d1e8879ba1366bb2c008c0e21ad30963a6f098e93733ce475340e3edcb28ea65ffb8173e3a4df96deb797334034e4e7bdca744e48bc
@@ -1,77 +1,81 @@
1
- require 'script_storage_item.rb'
1
+ require 'script_storage_item'
2
2
 
3
3
  @data = []
4
4
 
5
5
  def write_file
6
- File.open(File.basename($0)) 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($0), file_data)
14
- end
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
- File.open(File.basename($0)) do |file|
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
- end
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
- array = @data.select { |item| item.key == key}
45
- array.first.value if array.first
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
- if @data.include?(key)
50
- @data.each do |v|
51
- if v.key == key
52
- v.value = value
53
- end
54
- end
55
- else
56
- @data.append(Item.new(key, value))
57
- end
58
-
59
- write_file
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
- return unless @data.include?(key)
64
-
65
- @data.delete(key)
66
- write_file
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
- File.open(File.basename($0)) do |file|
71
- file_data = file.read.split("\n__END__\n")[0]
72
-
73
- File.write(File.basename($0), file_data)
74
- end
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
@@ -1,40 +1,39 @@
1
1
  class Item
2
+ attr_accessor :key, :value
2
3
 
3
- attr_accessor :key, :value
4
-
5
- def initialize(key, value)
6
- case value.class.to_s.downcase
7
- when 'array'
8
- @value = []
9
-
10
- value.each do |v|
11
- @value.append(v)
12
- end
13
- else
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
- end
19
-
20
- def show
17
+ end
18
+
19
+ def show
21
20
  type = @value.class.to_s.downcase
22
-
23
- case type
24
- when 'string'
25
- "#{key}: #{value}"
26
- when 'array'
27
- "#{key}(#{type}): #{@value.join(', ')}"
28
- else
29
- "#{key}(#{type}): #{value}"
30
- end
31
- end
32
-
33
- def ==(other)
34
- if other.class == String
35
- @key == other
36
- else
37
- @key == other.key
38
- end
39
- end
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.1.0
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-01-25 00:00:00.000000000 Z
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