script_storage 1.1.0 → 1.2.2

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: 7757fb5b1ce5e6d524bb454f4a593604349dde9f165ccd309907003deec2072f
4
+ data.tar.gz: 435ca77531b9aae571d61cf22e5a298d712d28066af721f712d02d5ac5e2f720
5
5
  SHA512:
6
- metadata.gz: 07bfa7a4affc367bac09fbc985b77b7bc2c3f3b0e5a35ea253c002246ef0168e2e1143df58c900d4735b39fa445d8d23beb74b05d7afd0ab531ed2524f1c2765
7
- data.tar.gz: 979f819608f1d843ba690a19488a6a6540a33ad82c725427a326f26792ba451e2bddcdb1282a1b3b1ce685a64cd60e37314290183069daf4bf4c3b149e7c08c2
6
+ metadata.gz: e9a4a9638148891d449828cb9c0c1262ffc624d64224c472851dcc4ed7278acc1e05acbe15dde9987fda1583c1c6367003d8b4293f3a39e73dc8748325642cb5
7
+ data.tar.gz: a5653120db3522f3fd4a47073973a39c68452bfa310d3684e694c5dc97a6f36d02fcc3b6c2db132c6b36d7f7a6a710e0ebd212de71bfc7c2178daa5eb6841aa3
@@ -1,77 +1,85 @@
1
- require 'script_storage_item.rb'
1
+ # frozen_string_literal: true
2
+
3
+ require 'script_storage_item'
2
4
 
3
5
  @data = []
4
6
 
7
+ def path
8
+ "#{`pwd`.strip}/#{$PROGRAM_NAME}"
9
+ end
10
+
5
11
  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
12
+ File.open(path) do |file|
13
+ file_data = "#{file.read.split("\n__END__\n")[0]}\n__END__\n"
14
+
15
+ @data.each do |v|
16
+ file_data += "#{v.show}\n"
17
+ end
18
+
19
+ File.write(path, file_data)
20
+ end
15
21
  end
16
22
 
17
23
  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
24
+ File.open(path) do |file|
25
+ file_content = file.read
26
+
27
+ break if file_content.split("\n__END__\n").length == 1
28
+
29
+ file_data = file_content.split("\n__END__\n").last
30
+
31
+ file_data.scan(/([A-z]*)(.*[()]*):(.*)/).each do |raw|
32
+ type = raw[1].strip[1..-2]
33
+ type = '' if type.nil?
34
+
35
+ case type
36
+ when 'array'
37
+ value = []
38
+
39
+ raw[2].strip.split(',').each do |v|
40
+ value.append(v.strip)
41
+ end
42
+
43
+ @data.append(Item.new(raw[0].strip, value))
44
+ when 'integer'
45
+ @data.append(Item.new(raw[0].strip, raw[2].strip.to_i))
46
+ else
47
+ @data.append(Item.new(raw[0].strip, raw[2].strip))
48
+ end
49
+ end
50
+ end
41
51
  end
42
52
 
43
53
  def read_storage(key)
44
- array = @data.select { |item| item.key == key}
45
- array.first.value if array.first
54
+ array = @data.select { |item| item.key == key }
55
+ array.first&.value
46
56
  end
47
57
 
48
58
  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
59
+ if @data.include?(key)
60
+ @data.each do |v|
61
+ v.value = value if v.key == key
62
+ end
63
+ else
64
+ @data.append(Item.new(key, value))
65
+ end
66
+
67
+ write_file
60
68
  end
61
69
 
62
70
  def delete_storage(key)
63
- return unless @data.include?(key)
64
-
65
- @data.delete(key)
66
- write_file
71
+ return unless @data.include?(key)
72
+
73
+ @data.delete(key)
74
+ write_file
67
75
  end
68
76
 
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
77
+ def delete_all_storage
78
+ File.open(path) do |file|
79
+ file_data = file.read.split("\n__END__\n")[0]
80
+
81
+ File.write(path, file_data)
82
+ end
75
83
  end
76
84
 
77
85
  load_storage
@@ -1,40 +1,41 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Item
4
+ attr_accessor :key, :value
5
+
6
+ def initialize(key, value)
7
+ case value.class.to_s.downcase
8
+ when 'array'
9
+ @value = []
2
10
 
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
11
+ value.each do |v|
12
+ @value.append(v)
13
+ end
14
+ else
15
+ @value = value
16
+ end
16
17
 
17
18
  @key = key
18
- end
19
-
20
- def show
19
+ end
20
+
21
+ def show
21
22
  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
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
+ @key == if other.class == String
36
+ other
37
+ else
38
+ other.key
39
+ end
40
+ end
41
+ 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.2
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-04-05 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
@@ -41,7 +41,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  requirements: []
44
- rubygems_version: 3.4.1
44
+ rubygems_version: 3.4.10
45
45
  signing_key:
46
46
  specification_version: 4
47
47
  summary: Save simple data in your script