module AspireBudget::Utils
Constants
- LOTUS_DAY_ONE
- TRANSACTION_STATUS_MAPPING
Public Class Methods
parse_date(value)
click to toggle source
Parses a value to a date object @return [Date] @param value either a numeric object or an object responding to to_date
# File lib/aspire_budget/utils.rb, line 11 def parse_date(value) return parse_serial_date(value) if value.is_a?(Numeric) return value.to_date if value.respond_to?(:to_date) raise 'Unsupported date format' end
parse_status(value)
click to toggle source
Parses a status icon @return [Symbol] @param value [String]
# File lib/aspire_budget/utils.rb, line 34 def parse_status(value) TRANSACTION_STATUS_MAPPING.fetch(value, nil) end
serialize_date(value)
click to toggle source
Parses a value to a serial date @return [Float] @param value either a numeric object or an object responding to to_date
# File lib/aspire_budget/utils.rb, line 21 def serialize_date(value) return Float(value) if value.is_a?(Numeric) && value >= 0 value = value.to_date if value.respond_to?(:to_date) raise 'Unsupported date value' unless value.is_a?(Date) raise "Date should be after #{LOTUS_DAY_ONE}" if LOTUS_DAY_ONE > value Float(value - LOTUS_DAY_ONE) end
serialize_status(value)
click to toggle source
Serialize a status symbol @return [String] @param value [Symbol]
# File lib/aspire_budget/utils.rb, line 41 def serialize_status(value) TRANSACTION_STATUS_MAPPING.key(value) || '' end
Private Class Methods
parse_serial_date(days_after_lotus_day_one)
click to toggle source
# File lib/aspire_budget/utils.rb, line 57 def parse_serial_date(days_after_lotus_day_one) LOTUS_DAY_ONE + days_after_lotus_day_one end