class SevenSegment

Public Class Methods

decode(segment)
Alias for: to_numbers
encode(number)
Alias for: to_segment
to_numbers(segment) click to toggle source
# File lib/seven_segment.rb, line 17
def self.to_numbers(segment)
  lines = segment.split(/\n/).map{|line| line.scan(/.../)}
  number = lines.transpose.map{|n| @keys.key(n.join)}.join.to_f
  number % 1 == 0 ? number.to_i : number
end
Also aliased as: decode
to_segment(number) click to toggle source
# File lib/seven_segment.rb, line 23
def self.to_segment(number)
  raise ArgumentError,"Characters not supported" if (number.to_s.scan(/[A-Z]/).any? || number.to_s.scan(/[a-z]/).any?)
  segment = number.to_s.chars.map { |n| @keys[n].scan(/.../) }
  segment.transpose.map { |s| s.join }.join("\n")
end
Also aliased as: encode