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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3df0a17440cfb3baa2f037e24845b926b4816d30
4
- data.tar.gz: 979604044c2acbb52acf452e08d58019aed6d8eb
3
+ metadata.gz: 45a6b3c30dcf0b9d15ae32c00575134e9b42c2cd
4
+ data.tar.gz: 65f4a8135a825d22941f76cd44bff4fe6b2bd0cd
5
5
  SHA512:
6
- metadata.gz: b5ed5fb413e74c146ff3eb9e79acf5f2fdd210b5892c8ae756c13e6d99b975ae45cf288756695e4642a7f6c5d9d8a3d6bf64ec50c6849e282b4011d491815b0b
7
- data.tar.gz: 9418ff8ad79a7fd193e52d37ec29b859dbbc0cf54079bf0856ad2c314bb551c9c69d1c4ec314c4f1836191a7d395224f34e72753af52f2fe899fcb4a80fad7c0
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Baldr
2
- VERSION = '0.3.19'
2
+ VERSION = '0.3.20'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baldr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.19
4
+ version: 0.3.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stanislav Spiridonov