class MorseCode::Base
Attributes
namespace[R]
word[R]
Public Class Methods
inherited(subclass)
click to toggle source
# File lib/morse_code/base.rb, line 7 def self.inherited(subclass) @@subclasses ||= [] @@subclasses << subclass end
new(word = '', namespace = '')
click to toggle source
# File lib/morse_code/base.rb, line 14 def initialize(word = '', namespace = '') @word = word @namespace = namespace end
Public Instance Methods
call()
click to toggle source
# File lib/morse_code/base.rb, line 23 def call return supported_class.new(word).call if supported_class word end
supported?()
click to toggle source
# File lib/morse_code/base.rb, line 19 def supported? raise MorseCode::NotImplementedError, 'Subclass must override supported? method' end
supported_class()
click to toggle source
# File lib/morse_code/base.rb, line 28 def supported_class supported_classes.detect { |clazz| clazz.name.start_with?(namespace) } end
supported_classes()
click to toggle source
# File lib/morse_code/base.rb, line 32 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