store_as_int 0.0.11 → 0.0.12

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/store_as_int/base.rb +30 -5
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: acad5594e8ba1902641c9135c0a778f9d83b21035c113bf001dea7b1074127ab
4
- data.tar.gz: 9a2a071db0e6a75399a40a41ab3db7a873f0a9d2036d23575a35f01262e556eb
3
+ metadata.gz: 22dbf2bdae8fc03aa6f324698da139fef527f583989ddf7665a0c93245858c55
4
+ data.tar.gz: c8d9c7c5d64d21590f690838ad9d3b136459a5268e7399c90a50e101366cd4ec
5
5
  SHA512:
6
- metadata.gz: 1dd70bf6cbf4d8c7d09b68ccef64c694b29a680e4eb15e5ccf125893b7ac9fb9a309e814dc8b34d2bc8608bfe039223758653d936c126798361349d5555ce9e5
7
- data.tar.gz: e13c91cb3a4efbb70e4b8fcc8cb661e32aa146a295465153bb580186e0c4d0fa5434f005c81f7498c9c09ecb7b3eaa9a4174b3036a898984443ab27ded034de7
6
+ metadata.gz: 6cf32d9dfcad73cbe5b9c17306dd0c3ad25f7474d240051618d7fbbb1fb683accc301411d50113eb98505c11f937341a710b9fce6cbb73f83149ad9ca7893753
7
+ data.tar.gz: 708f09372d3adcd06cc50d15b86e47529b5cca07481c7173a9d3e0b9ee4dc15decada51ffee7a08f074f33d97cc3133ee2d2efb441e0cb78e983ce7a7c334b56
@@ -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]'}+)?([0-9]+)(\.[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) || self.class == klass || super(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
- self.num.as_json(*args)
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.11
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.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