class AdvancedSearch::SExp::InvalidType

A nicer presentation of a `NameError`.

@api public

Public Class Methods

new(type, name_error) click to toggle source

@api private

# File lib/advanced_search/sexp/invalid_type.rb, line 10
def initialize(type, name_error)
  @type = type
  @name_error = name_error
end

Public Instance Methods

message() click to toggle source

@api public @return String

# File lib/advanced_search/sexp/invalid_type.rb, line 17
def message
  format(
    'Invalid S-expression type: %s (%s) Valid types are: %s',
    @type,
    @name_error.message,
    valid_types.join(', ')
  )
end

Private Instance Methods

valid_types() click to toggle source

@api private

# File lib/advanced_search/sexp/invalid_type.rb, line 29
def valid_types
  AST.constants.reject { |sym| sym == :Base }.map { |sym| sym.to_s.downcase }
end