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 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