A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://docs.ruby-lang.org/en/3.4/DidYouMean.html below:

module DidYouMean - Documentation for Ruby 3.4

module DidYouMean

The DidYouMean gem adds functionality to suggest possible method/class names upon errors such as NameError and NoMethodError. In Ruby 2.3 or later, it is automatically activated during startup.

@example

methosd




OBject



@full_name = "Yuki Nishijima"
first_name, last_name = full_name.split(" ")



@@full_name = "Yuki Nishijima"
@@full_anme



full_name = "Yuki Nishijima"
full_name.starts_with?("Y")



hash = {foo: 1, bar: 2, baz: 3}
hash.fetch(:fooo)


Disabling did_you_mean

Occasionally, you may want to disable the did_you_mean gem for e.g. debugging issues in the error object itself. You can disable it entirely by specifying --disable-did_you_mean option to the ruby command:

$ ruby --disable-did_you_mean -e "1.zeor?"
-e:1:in `<main>': undefined method `zeor?' for 1:Integer (NameError)

When you do not have direct access to the ruby command (e.g. +rails console+, irb), you could applyoptions using the RUBYOPT environment variable:

$ RUBYOPT='--disable-did_you_mean' irb
irb:0> 1.zeor?
# => NoMethodError (undefined method `zeor?' for 1:Integer)
Getting the original error message

Sometimes, you do not want to disable the gem entirely, but need to get the original error message without suggestions (e.g. testing). In this case, you could use the original_message method on the error object:

no_method_error = begin
                    1.zeor?
                  rescue NoMethodError => error
                    error
                  end

no_method_error.message



no_method_error.original_message

Constants
PlainFormatter

The DidYouMean::Formatter is the basic, default formatter for the gem. The formatter responds to the message_for method and it returns a human readable string.

VERSION
VerboseFormatter

The DidYouMean::Formatter is the basic, default formatter for the gem. The formatter responds to the message_for method and it returns a human readable string.

Public Class Methods

Source

def self.correct_error(error_class, spell_checker)
  if defined?(Ractor)
    new_mapping = { **@spell_checkers, error_class.to_s => spell_checker }
    new_mapping.default = NullChecker

    @spell_checkers = Ractor.make_shareable(new_mapping)
  else
    spell_checkers[error_class.to_s] = spell_checker
  end

  error_class.prepend(Correctable) if error_class.is_a?(Class) && !(error_class < Correctable)
end

Adds DidYouMean functionality to an error using a given spell checker

Source

def self.formatter
  if defined?(Ractor)
    Ractor.current[:__did_you_mean_formatter__] || Formatter
  else
    Formatter
  end
end

Returns the currently set formatter. By default, it is set to DidYouMean::Formatter.

Source

def self.formatter=(formatter)
  if defined?(Ractor)
    Ractor.current[:__did_you_mean_formatter__] = formatter
  end
end

Updates the primary formatter used to format the suggestions.

Source

def self.spell_checkers
  @spell_checkers
end

Returns a sharable hash map of error types and spell checker objects.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.3