baldr 0.3.19 → 0.3.20
Sign up to get free protection for your applications and to get access to all the features.
- 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