class Halunke::HUnknownMessage
Public Class Methods
new(receiver, message_name, receivable_messages, source_code_position)
click to toggle source
Calls superclass method
Halunke::HError::new
# File lib/halunke/herror.rb, line 18 def initialize(receiver, message_name, receivable_messages, source_code_position) message = [ "#{receiver} received the message `#{message_name}`. It doesn't know how to handle that.", did_you_mean(receivable_messages, message_name) ].join("\n") super(message, source_code_position) end
Private Instance Methods
did_you_mean(receivable_messages, message_name)
click to toggle source
# File lib/halunke/herror.rb, line 29 def did_you_mean(receivable_messages, message_name) guess = receivable_messages.min_by { |m| levenshtein_distance(m, message_name) } if levenshtein_distance(guess, message_name) < 5 "Did you mean `#{guess}`?" else "It supports the following messages: #{receivable_messages.join(", ")}" end end