Module: Baldr::Types
Instance Method Summary collapse
- #convert_after_load!(envelope, grammar) ⇒ Object
- #convert_after_parse!(envelope, grammar) ⇒ Object
- #convert_before_render!(envelope, grammar) ⇒ Object
Instance Method Details
#convert_after_load!(envelope, grammar) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/baldr/types.rb', line 5 def convert_after_load!(envelope, grammar) convert_tree!(envelope, grammar) do |record_def, element| case record_def[:type] when :number if element.is_a? String if record_def[:decimals] == 0 element else element.to_f end else element end else element end end end |
#convert_after_parse!(envelope, grammar) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/baldr/types.rb', line 24 def convert_after_parse!(envelope, grammar) convert_tree!(envelope, grammar) do |record_def, element| case record_def[:type] when :number if element.is_a? String if record_def[:decimals] == 0 element else element.to_f / (10.0 ** record_def[:decimals]) end else element end else element end end end |
#convert_before_render!(envelope, grammar) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/baldr/types.rb', line 43 def convert_before_render!(envelope, grammar) convert_tree!(envelope, grammar) do |record_def, element| case record_def[:type] when :real if element.is_a? String element else if (element - element.floor).zero? element.truncate.to_s else element.round(2).to_s end end when :number if element.is_a? String element else if record_def[:decimals] == 0 element.to_s else (element * (10.0 ** record_def[:decimals])).round.to_s end end else element end end end |