Class: Jan::Symbol::BandPattern::SymbolCharacter

Inherits:
Jan::Symbol::BandPattern show all
Defined in:
lib/jan/symbol/band_pattern/symbol_character.rb

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ SymbolCharacter

Returns a new instance of SymbolCharacter.

Parameters:

  • name (String)


6
7
8
9
10
11
12
# File 'lib/jan/symbol/band_pattern/symbol_character.rb', line 6

def initialize(name)
  unless name.match?(/\A[ABC]\d\z/)
    raise ArgumentError
  end

  @name = name
end

Instance Method Details

#bandsArray<Jan::Symbol::Band>

Returns:



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/jan/symbol/band_pattern/symbol_character.rb', line 15

def bands
  set_name, digit = @name.split('')

  case set_name
  when 'A'
    stripe_pattern = [Band::Space, Band::Bar, Band::Space, Band::Bar]
    width_arr = width_array(digit)
  when 'B'
    stripe_pattern = [Band::Space, Band::Bar, Band::Space, Band::Bar]
    width_arr = width_array(digit).reverse
  when 'C'
    stripe_pattern = [Band::Bar, Band::Space, Band::Bar, Band::Space]
    width_arr = width_array(digit)
  end

  stripe_pattern.zip(width_arr).map { |klass, width|
    klass.new(width)
  }
end