store_as_int 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/store_as_int/base.rb +30 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22dbf2bdae8fc03aa6f324698da139fef527f583989ddf7665a0c93245858c55
|
4
|
+
data.tar.gz: c8d9c7c5d64d21590f690838ad9d3b136459a5268e7399c90a50e101366cd4ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cf32d9dfcad73cbe5b9c17306dd0c3ad25f7474d240051618d7fbbb1fb683accc301411d50113eb98505c11f937341a710b9fce6cbb73f83149ad9ca7893753
|
7
|
+
data.tar.gz: 708f09372d3adcd06cc50d15b86e47529b5cca07481c7173a9d3e0b9ee4dc15decada51ffee7a08f074f33d97cc3133ee2d2efb441e0cb78e983ce7a7c334b56
|
data/lib/store_as_int/base.rb
CHANGED
@@ -34,7 +34,7 @@ module StoreAsInt
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def self.matcher
|
37
|
-
/^(\-|\+)?(?:#{sym.to_s.size > 0 ? Regexp.quote(sym.to_s) : '[^0-9]'}
|
37
|
+
/^(\-|\+)?(?:#{sym.to_s.size > 0 ? Regexp.quote(sym.to_s) : '[^0-9]'}*)([0-9]+)(\.[0-9]+)?$/
|
38
38
|
end
|
39
39
|
|
40
40
|
def self.accuracy
|
@@ -71,7 +71,10 @@ module StoreAsInt
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def kind_of?(klass)
|
74
|
-
value.kind_of?(klass) ||
|
74
|
+
value.kind_of?(klass) ||
|
75
|
+
self.class == klass ||
|
76
|
+
StoreAsInt == klass ||
|
77
|
+
super(klass)
|
75
78
|
end
|
76
79
|
|
77
80
|
def instance_of?(klass)
|
@@ -115,8 +118,6 @@ module StoreAsInt
|
|
115
118
|
gsub(/(,|\s)/, '').
|
116
119
|
match(self.class.matcher)[1..-1].join("")
|
117
120
|
rescue NoMethodError
|
118
|
-
puts $!.message
|
119
|
-
puts $!.backtrace
|
120
121
|
return self.num = 0
|
121
122
|
end
|
122
123
|
end
|
@@ -130,7 +131,7 @@ module StoreAsInt
|
|
130
131
|
end
|
131
132
|
|
132
133
|
def as_json(*args)
|
133
|
-
|
134
|
+
to_h
|
134
135
|
end
|
135
136
|
|
136
137
|
def base
|
@@ -186,10 +187,34 @@ module StoreAsInt
|
|
186
187
|
to_i/base_float
|
187
188
|
end
|
188
189
|
|
190
|
+
def to_h
|
191
|
+
{
|
192
|
+
accuracy: accuracy,
|
193
|
+
base: base,
|
194
|
+
decimal: to_d,
|
195
|
+
decimals: decimals,
|
196
|
+
float: to_f,
|
197
|
+
str: to_s,
|
198
|
+
str_format: str_format,
|
199
|
+
str_pretty: to_s(true),
|
200
|
+
sym: sym,
|
201
|
+
value: value,
|
202
|
+
}
|
203
|
+
end
|
204
|
+
|
189
205
|
def to_i
|
190
206
|
self.num.to_i
|
191
207
|
end
|
192
208
|
|
209
|
+
def to_json(*args)
|
210
|
+
begin
|
211
|
+
self.to_h.to_json
|
212
|
+
rescue NoMethodError
|
213
|
+
require 'json'
|
214
|
+
JSON.unparse(to_h)
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
193
218
|
def to_s(w_sym = false)
|
194
219
|
begin
|
195
220
|
str_format.call(self, w_sym)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: store_as_int
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sampson Crowley
|
@@ -40,7 +40,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
40
40
|
version: '0'
|
41
41
|
requirements: []
|
42
42
|
rubyforge_project:
|
43
|
-
rubygems_version: 2.7.
|
43
|
+
rubygems_version: 2.7.6
|
44
44
|
signing_key:
|
45
45
|
specification_version: 4
|
46
46
|
summary: Store values as integers for lossless calculations
|