Class: SevenSegment

Inherits:
Object
  • Object
show all
Defined in:
lib/seven_segment.rb

Class Method Summary collapse

Class Method Details

.to_numbers(segment) ⇒ Object Also known as: decode



17
18
19
20
21
# 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

.to_segment(number) ⇒ Object Also known as: encode

Raises:

  • (ArgumentError)


23
24
25
26
27
# 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