Sha256: dbde7837a513d795079b16f3141d3190553e0dd191564f70009deb2e2a143e8b

Contents?: true

Size: 435 Bytes

Versions: 16

Compression:

Stored size: 435 Bytes

Contents

module BookKeeping
  VERSION = 2
end

class Binary
  attr_reader :digits

  def initialize(s)
    fail ArgumentError.new("invalid binary input #{s}") unless valid?(s)

    @digits = s.chars.reverse.collect(&:to_i)
  end

  def to_decimal
    digits.each_with_index.inject(0) do |decimal, (digit, i)|
      decimal + digit * 2**i
    end
  end

  private

  def valid?(s)
    s.chars.all? { |char| ['0', '1'].include?(char) }
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
trackler-2.0.3.2 tracks/ruby/exercises/binary/example.rb
trackler-2.0.3.1 tracks/ruby/exercises/binary/example.rb
trackler-2.0.3.0 tracks/ruby/exercises/binary/example.rb
trackler-2.0.2.0 tracks/ruby/exercises/binary/example.rb
trackler-2.0.1.2 tracks/ruby/exercises/binary/example.rb
trackler-2.0.1.1 tracks/ruby/exercises/binary/example.rb
trackler-2.0.1.0 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.10 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.9 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.8 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.7 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.6 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.5 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.4 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.3 tracks/ruby/exercises/binary/example.rb
trackler-2.0.0.2 tracks/ruby/exercises/binary/example.rb