measured-rails 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/measured/rails/active_record.rb +7 -1
- data/lib/measured/rails/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a228c3feac7e0810823eb7a838318ef24b1b459
|
4
|
+
data.tar.gz: 46d35f6ce7e1d68f65fe23620b21eba1e8358e40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc6967a2287ac7cff1beb58a2af703bd1a512eafffd5f3791a6fd7f3027cb24771b3a8679cae7b5861bec4a36c35da3c6a9068a4e62476fe26c2ee0878f4c068
|
7
|
+
data.tar.gz: 0c9041617dc8ac13d9c06092adb946daddae25c370d2415e2ada1bb41ed9424ce0280c1d8160285b448bc2f79f55d1711890462ae95cb3df388ead85e7f649f7
|
@@ -42,7 +42,13 @@ module Measured::Rails::ActiveRecord
|
|
42
42
|
if incoming.is_a?(measured_class)
|
43
43
|
instance_variable_set("@measured_#{ field }", incoming)
|
44
44
|
value_field_name = "#{ field }_value"
|
45
|
-
|
45
|
+
precision = self.column_for_attribute(value_field_name).precision
|
46
|
+
scale = self.column_for_attribute(value_field_name).scale
|
47
|
+
## For BigDecimal#split syntax, refer http://ruby-doc.org/stdlib-2.1.1/libdoc/bigdecimal/rdoc/BigDecimal.html#method-i-split
|
48
|
+
if incoming.value.split[1].size > precision
|
49
|
+
raise Measured::Rails::Error, "The value #{incoming.value} being set for column '#{value_field_name}' has too many significant digits. Please ensure it has no more than #{precision} significant digits."
|
50
|
+
end
|
51
|
+
public_send("#{ value_field_name }=", incoming.value.round(scale))
|
46
52
|
public_send("#{ field }_unit=", incoming.unit)
|
47
53
|
else
|
48
54
|
instance_variable_set("@measured_#{ field }", nil)
|