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