module BarkestCore::NumberParser
This module will add number parsing methods to a class.
Constants
- NUMBER_REGEX
This regular expression should match any non-exponential numeric value.
Public Class Methods
parse_for_float_column(value)
click to toggle source
Parses a value for storage in a float column.
Returns nil if the value is invalid. Otherwise it returns a float.
# File lib/barkest_core/concerns/number_parser.rb, line 17 def self.parse_for_float_column(value) value = value.to_s return nil unless NUMBER_REGEX.match(value) value.blank? ? nil : value.split(',').join.to_f end
parse_for_float_filter(value)
click to toggle source
Parses a value for use as a SQL filter.
Returns ‘NULL’ if the value parses to nil. Otherwise returns the value.
# File lib/barkest_core/concerns/number_parser.rb, line 40 def self.parse_for_float_filter(value) value = parse_for_float_column(value) value.nil? ? 'NULL' : value.to_s end
parse_for_int_column(value)
click to toggle source
Parses a value for storage in an integer column.
Returns nil if the value is invalid. Otherwise it returns an integer.
# File lib/barkest_core/concerns/number_parser.rb, line 28 def self.parse_for_int_column(value) value = value.to_s return nil unless NUMBER_REGEX.match(value) value.blank? ? nil : value.split(',').join.to_i end
parse_for_int_filter(value)
click to toggle source
Parses a value for use as a SQL filter.
Returns ‘NULL’ if the value parses to nil. Otherwise returns the value.
# File lib/barkest_core/concerns/number_parser.rb, line 51 def self.parse_for_int_filter(value) value = parse_for_int_column(value) value.nil? ? 'NULL' : value.to_s end