Sha256: c25cf0e330aac3c61c708a84946d2aa3c4abb3afafc18283c9326f83c3184d5f

Contents?: true

Size: 416 Bytes

Versions: 368

Compression:

Stored size: 416 Bytes

Contents

module BookKeeping
  VERSION = 3
end

class Binary
  def self.to_decimal binary
    fail ArgumentError.new("invalid binary input #{binary}") if invalid?(binary)

    digits(binary).reduce(0, &method(:convert))
  end

  private

  def self.invalid?(binary)
    binary =~ /[^01]/
  end

  def self.digits(binary)
    binary.chars.map(&:to_i)
  end

  def self.convert(decimal, digit)
    decimal * 2 + digit
  end
end

Version data entries

368 entries across 368 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.179 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.178 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.177 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.176 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.175 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.174 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.173 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.172 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.171 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.170 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.169 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.167 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.166 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.165 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.164 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.163 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.162 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.161 tracks/ruby/exercises/binary/.meta/solutions/binary.rb
trackler-2.2.1.160 tracks/ruby/exercises/binary/.meta/solutions/binary.rb