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