Sha256: 68a6dc4d98919a2904640408e47522d785c829eb7aa81c6fb4f0bbc18ccb58d5

Contents?: true

Size: 860 Bytes

Versions: 4

Compression:

Stored size: 860 Bytes

Contents

require 'date'

module Kinabo
  module Utils
    def justify_string(string, length)
      I18n.transliterate(string.to_s).truncate(length, omission: '').ljust(length, ' ')
    end

    def justify_number(number, length)
      number.to_s.rjust(length, '0')
    end

    def justify_value(value, length, decimal_places = 2)
      ("%.#{decimal_places}f" % (value || 0)).gsub(/[.,]/, '').rjust(length, '0')
    end

    def parse_decimal(string)
      string.to_f / 100.0
    end

    def parse_date(string)
      return nil if string.to_i.zero?

      DateTime.strptime(string, "%d%m%y")
    end

    def parse_string(string)
      string.strip
    end

    def parse_number(string)
      string.to_i
    end

    def fill_sequencial(lines)
      lines.map.with_index(1) { |line, index| line + justify_number(index, 6) }.join("\r\n") + "\r\n"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
kinabo-0.5.0 lib/kinabo/utils.rb
kinabo-0.4.0 lib/kinabo/utils.rb
kinabo-0.3.0 lib/kinabo/utils.rb
kinabo-0.2.0 lib/kinabo/utils.rb