code-ruby 1.9.0 → 1.9.1
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 +4 -4
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/lib/code/format.rb +18 -2
- data/spec/code/format_spec.rb +3 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6fa3d1843b2e8b0c48e77e0ebee8f777b600e3a394a6037abc4efac105fc675b
|
|
4
|
+
data.tar.gz: bf34f84603acd5949f0b66cc77ec0a05da8785fb27f98a82dcb9688f31dcd3d0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 322e53da06d327556582256fd4337873ab5f1cdeb406abcc03812d7c9f2180edfb266d6114d77e49249055d3a8ff55ce89b30326432c5bc19aa53dbe13609641
|
|
7
|
+
data.tar.gz: 89eb23ea7ede87aa9dbb46f8ba758a570cc1ac7a259981c663bc093c860bb78f76c4085c0e25c366604895fda5a039f3c166edbf7a61138b167170f342916f1c
|
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.9.
|
|
1
|
+
1.9.1
|
data/lib/code/format.rb
CHANGED
|
@@ -116,7 +116,7 @@ class Code
|
|
|
116
116
|
def format_base_10(base_10, indent:)
|
|
117
117
|
return "0" unless base_10.is_a?(Hash)
|
|
118
118
|
|
|
119
|
-
whole = base_10[:whole] || "0"
|
|
119
|
+
whole = format_grouped_whole(base_10[:whole] || "0")
|
|
120
120
|
exponent = base_10[:exponent]
|
|
121
121
|
return whole unless exponent
|
|
122
122
|
|
|
@@ -126,13 +126,29 @@ class Code
|
|
|
126
126
|
def format_decimal(decimal, indent:)
|
|
127
127
|
return "0.0" unless decimal.is_a?(Hash)
|
|
128
128
|
|
|
129
|
-
raw = decimal[:decimal] || "0.0"
|
|
129
|
+
raw = format_grouped_decimal(decimal[:decimal] || "0.0")
|
|
130
130
|
exponent = decimal[:exponent]
|
|
131
131
|
return raw unless exponent
|
|
132
132
|
|
|
133
133
|
"#{raw}e#{format_nested_statement(exponent, indent: indent)}"
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
+
def format_grouped_whole(whole)
|
|
137
|
+
value = whole.to_s
|
|
138
|
+
return value unless value.match?(/\A\d+\z/)
|
|
139
|
+
return value if value.start_with?("0") && value.length > 1
|
|
140
|
+
|
|
141
|
+
value.reverse.scan(/.{1,3}/).join("_").reverse
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def format_grouped_decimal(raw)
|
|
145
|
+
value = raw.to_s
|
|
146
|
+
whole, fraction = value.split(".", 2)
|
|
147
|
+
return value unless whole && fraction
|
|
148
|
+
|
|
149
|
+
"#{format_grouped_whole(whole)}.#{fraction.scan(/.{1,3}/).join("_")}"
|
|
150
|
+
end
|
|
151
|
+
|
|
136
152
|
def format_string(parts, indent:)
|
|
137
153
|
return '""' if parts == "" || parts.nil?
|
|
138
154
|
symbol = symbolizable_string(parts)
|
data/spec/code/format_spec.rb
CHANGED