bytes_converter 0.0.3 → 0.0.4
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.
- data/lib/bytes_converter.rb +47 -10
- data/lib/bytes_converter/version.rb +1 -1
- metadata +2 -2
data/lib/bytes_converter.rb
CHANGED
@@ -2,20 +2,57 @@ require "bytes_converter/version"
|
|
2
2
|
|
3
3
|
module BytesConverter
|
4
4
|
|
5
|
+
# default available values
|
6
|
+
@sizes = {
|
7
|
+
"k" => 1024,
|
8
|
+
"m" => 1024*1024,
|
9
|
+
"g" => 1024*1024*1024
|
10
|
+
}
|
11
|
+
|
5
12
|
# method converting size into bytes
|
6
13
|
def self.convert size
|
7
|
-
sizes = {
|
8
|
-
"K" => 1024,
|
9
|
-
"M" => 1024*1024,
|
10
|
-
"G" => 1024*1024*1024
|
11
|
-
}
|
12
|
-
m = size.scan(/(\d*\.\d*)+(\w)?/).collect { |serwer| serwer }
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
# replacing comma with dot
|
16
|
+
size_converted = size.downcase.gsub(',','.')
|
17
|
+
|
18
|
+
# separating digits (size) from rest of the string (unit)
|
19
|
+
x = size_converted.scan(/(\d*\.?\d*)(.*)/).collect { |found| found }
|
20
|
+
|
21
|
+
# stripping whitespaces
|
22
|
+
x[0][0].strip!
|
23
|
+
x[0][1].strip!
|
24
|
+
|
25
|
+
# limiting unit to first letter (k,m and so on)
|
26
|
+
x[0][1] = x[0][1][/\w{1}/]
|
27
|
+
|
28
|
+
# if unit is present (not nil) -> getting multiplier from sizes array
|
29
|
+
# and calculating bytes
|
30
|
+
unless x[0][1].nil?
|
31
|
+
out = x[0][0].to_f * @sizes[x[0][1]].to_f
|
32
|
+
else # if unit is not present -> we assume that size is already in bytes.
|
33
|
+
out = x[0][0].to_f
|
18
34
|
end
|
35
|
+
|
36
|
+
# returning calculated (or not) value
|
19
37
|
out
|
20
38
|
end
|
39
|
+
|
40
|
+
# method adding new unit to @sizes hash
|
41
|
+
def self.add_unit new_unit
|
42
|
+
@sizes.merge!(new_unit)
|
43
|
+
true
|
44
|
+
end
|
45
|
+
|
46
|
+
# getter for sizes
|
47
|
+
def self.get_units
|
48
|
+
@sizes.each do | key, value |
|
49
|
+
puts "unit: #{key} = #{value}"
|
50
|
+
end
|
51
|
+
"end of list"
|
52
|
+
end
|
53
|
+
|
54
|
+
# method removing size
|
55
|
+
def self.remove_unit unit
|
56
|
+
@sizes.delete(unit) { |key| "Unit \"#{key}\" not found among sizes!" }
|
57
|
+
end
|
21
58
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bytes_converter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-18 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Gem converting Kilobytes, Megabytes and Gigabytes to bytes
|
15
15
|
email:
|