Sha256: 4b11181fadc641c5387f70ca8833b8d5976b3b0be1d7c9abd95a4589c922513b

Contents?: true

Size: 894 Bytes

Versions: 3

Compression:

Stored size: 894 Bytes

Contents

# encoding: utf-8
require 'active_support/core_ext/enumerable'

module BoletoBancario
  module Calculos
    # Classe responsável por lidar com os dígitos dos módulos.
    #
    class Digitos
      # @param [Integer] number Número que servirá para os cálculo com os dígitos desse número.
      #
      def initialize(number)
        @number = number
      end

      # Soma cada dígito do número passado no #initialize.
      # Alguns bancos requerem esse tipo estranho de cálculo em alguns módulos.
      # @return [Fixnum] Resultado da soma de cada dígito.
      #
      # @example
      #
      #    Digitos.new(12).sum
      #    # => 3
      #
      #    Digitos.new(2244).sum
      #    # => 12
      #
      #    Digitos.new(90123451).sum
      #    # => 25
      #
      def sum
        @number.to_s.split('').collect { |number| number.to_i }.sum
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
boleto_bancario-0.0.2 lib/boleto_bancario/calculos/digitos.rb
conectiva-boleto_bancario-0.0.2.beta lib/boleto_bancario/calculos/digitos.rb
boleto_bancario-0.0.1.beta lib/boleto_bancario/calculos/digitos.rb