Class: MorseCode::Decoders::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/morse_code/decoders/base.rb

Direct Known Subclasses

Chinese, English

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(word = '') ⇒ Base

Returns a new instance of Base.



14
15
16
# File 'lib/morse_code/decoders/base.rb', line 14

def initialize(word = '')
  @word = word
end

Instance Attribute Details

#wordObject (readonly)

Returns the value of attribute word.



12
13
14
# File 'lib/morse_code/decoders/base.rb', line 12

def word
  @word
end

Class Method Details

.inherited(subclass) ⇒ Object



7
8
9
10
# File 'lib/morse_code/decoders/base.rb', line 7

def self.inherited(subclass)
  @@subclasses ||= []
  @@subclasses << subclass
end

Instance Method Details

#supported?Boolean

Returns:

  • (Boolean)

Raises:



18
19
20
# File 'lib/morse_code/decoders/base.rb', line 18

def supported?
  raise NotImplementedError, 'Subclass must override supported? method'
end

#supported_classObject



22
23
24
25
26
# File 'lib/morse_code/decoders/base.rb', line 22

def supported_class
  supported_class = Array(@@subclasses).detect { |subclass| subclass.new(word).supported? }
  puts "[WARING] Not Classs can decode this #{word}!" unless supported_class
  supported_class
end