module Overpunch
Constants
- NEG_OVERPUNCH_SET
- OVERPUNCH_PATTERN
- POS_OVERPUNCH_SET
- VERSION
Public Class Methods
format(number, width: nil)
click to toggle source
# File lib/overpunch.rb, line 22 def self.format(number, width: nil) overpunch_set = if number < 0 NEG_OVERPUNCH_SET else POS_OVERPUNCH_SET end abs_number = number.abs formatted = abs_number.to_s[0..-2] + overpunch_set[abs_number % 10] padding = [ (width || 0) - formatted.size, 0 ].max ("0" * padding) + formatted end
parse(string)
click to toggle source
# File lib/overpunch.rb, line 9 def self.parse(string) unless matches = string.match(OVERPUNCH_PATTERN) raise ArgumentError, "Invalid overpunch string: \"#{string}\"" end sign, overpunch_set = if matches[3] [ 1, POS_OVERPUNCH_SET ] else [ -1, NEG_OVERPUNCH_SET ] end sign * matches[1].tr(overpunch_set, '0-9').to_i end