baldr 0.3.19 → 0.3.20
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/lib/baldr/types.rb +11 -1
- data/lib/baldr/validator.rb +18 -6
- data/lib/baldr/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: 45a6b3c30dcf0b9d15ae32c00575134e9b42c2cd
|
4
|
+
data.tar.gz: 65f4a8135a825d22941f76cd44bff4fe6b2bd0cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a82bfc2c6415dbd7e9fe69e071a192ebdd0ba40ed078435ccc52100283afdbabd82d72b0967827055bf49ae21b2d8f53997dc584f1fe3f6294a6b3fcb26c4aa8
|
7
|
+
data.tar.gz: d93c530113a011246537c2c7616b27778cd82c30c298d645f94404c0a67bcb334ff2514d5472f63a29f739e88ecb250ea80f772fa06e147d785d3b68ed5cb854
|
data/lib/baldr/types.rb
CHANGED
@@ -43,12 +43,22 @@ module Baldr::Types
|
|
43
43
|
def convert_before_render!(envelope, grammar)
|
44
44
|
convert_tree!(envelope, grammar) do |record_def, element|
|
45
45
|
case record_def[:type]
|
46
|
+
when :real
|
47
|
+
if element.is_a? String
|
48
|
+
element
|
49
|
+
else
|
50
|
+
if (element - element.floor).zero?
|
51
|
+
element.truncate.to_s
|
52
|
+
else
|
53
|
+
element.round(2).to_s
|
54
|
+
end
|
55
|
+
end
|
46
56
|
when :number
|
47
57
|
if element.is_a? String
|
48
58
|
element
|
49
59
|
else
|
50
60
|
if record_def[:decimals] == 0
|
51
|
-
element
|
61
|
+
element.to_s
|
52
62
|
else
|
53
63
|
(element * (10.0 ** record_def[:decimals])).round.to_s
|
54
64
|
end
|
data/lib/baldr/validator.rb
CHANGED
@@ -64,7 +64,6 @@ module Baldr::Validator
|
|
64
64
|
|
65
65
|
def check_id(r, element)
|
66
66
|
check_max_and_min_for_string(r, element)
|
67
|
-
|
68
67
|
end
|
69
68
|
|
70
69
|
def check_max_and_min_for_string(r, element)
|
@@ -78,23 +77,36 @@ module Baldr::Validator
|
|
78
77
|
end
|
79
78
|
|
80
79
|
def check_time(r, element)
|
81
|
-
|
80
|
+
if r[:max] && element.length > r[:max]
|
81
|
+
raise Baldr::Error::ValidationError, "#{r[:id]} is too long: #{element.length} characters, maximum #{r[:max]}"
|
82
|
+
end
|
82
83
|
end
|
83
84
|
|
84
85
|
def check_date(r, element)
|
85
|
-
|
86
|
+
if r[:max] && element.length > r[:max]
|
87
|
+
raise Baldr::Error::ValidationError, "#{r[:id]} is too long: #{element.length} characters, maximum #{r[:max]}"
|
88
|
+
end
|
86
89
|
end
|
87
90
|
|
88
91
|
def check_number(r, element)
|
89
|
-
|
92
|
+
value = element.to_s
|
93
|
+
if r[:max] && value.length > r[:max]
|
94
|
+
raise Baldr::Error::ValidationError, "#{r[:id]} is too long: #{value.length} characters, maximum #{r[:max]}"
|
95
|
+
end
|
96
|
+
if value.match(/[^\d-]/)
|
97
|
+
raise Baldr::Error::ValidationError, "#{r[:id]} has invalid symbols: #{value}"
|
98
|
+
end
|
90
99
|
end
|
91
100
|
|
92
101
|
def check_real(r, element)
|
93
|
-
|
102
|
+
value = element.to_s
|
103
|
+
if r[:max] && value.length > r[:max]
|
104
|
+
raise Baldr::Error::ValidationError, "#{r[:id]} is too long: #{value.length} characters, maximum #{r[:max]}"
|
105
|
+
end
|
94
106
|
end
|
95
107
|
|
96
108
|
def check_complex(r, element)
|
97
109
|
|
98
110
|
end
|
99
111
|
|
100
|
-
end
|
112
|
+
end
|
data/lib/baldr/version.rb
CHANGED