Class: MorseCode::Base

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

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/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/base.rb', line 12

def word
  @word
end

Class Method Details

.inherited(subclass) ⇒ Object



7
8
9
10
# File 'lib/morse_code/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/base.rb', line 18

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

#supported_classesObject



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

def supported_classes
  supported_classes = Array(@@subclasses).select { |subclass| subclass.new(word).supported? }
  puts "[WARING] Not Classs can support this #{word}!" if supported_classes.empty?
  supported_classes
end