Class: BELParser::Language::Syntax::UndefinedNamespaceError

Inherits:
SyntaxError show all
Defined in:
lib/bel_parser/language/syntax/undefined_namespace.rb

Overview

UndefinedNamespaceError indicates a parameter prefix is referencing an undefined namespace.

Instance Attribute Summary collapse

Attributes inherited from SyntaxResult

#expression_node, #specification

Instance Method Summary collapse

Methods inherited from SyntaxError

#failure?, #success?, #to_s

Methods inherited from SyntaxResult

#failure?, #success?, #to_s

Constructor Details

#initialize(prefix_node, spec, invalid_prefix, defined_namespaces) ⇒ UndefinedNamespaceError

Returns a new instance of UndefinedNamespaceError.



34
35
36
37
38
# File 'lib/bel_parser/language/syntax/undefined_namespace.rb', line 34

def initialize(prefix_node, spec, invalid_prefix, defined_namespaces)
  super(prefix_node, spec)
  @invalid_prefix     = invalid_prefix
  @defined_namespaces = defined_namespaces.dup
end

Instance Attribute Details

#defined_namespacesObject (readonly)

Gets the defined namespaces.



32
33
34
# File 'lib/bel_parser/language/syntax/undefined_namespace.rb', line 32

def defined_namespaces
  @defined_namespaces
end

#invalid_prefixObject (readonly)

Gets the invalid prefix.



30
31
32
# File 'lib/bel_parser/language/syntax/undefined_namespace.rb', line 30

def invalid_prefix
  @invalid_prefix
end

Instance Method Details

#msgObject



40
41
42
43
44
45
# File 'lib/bel_parser/language/syntax/undefined_namespace.rb', line 40

def msg
  <<-MSG.gsub(/ {10}/, '')
    Undefined namespace "#{invalid_prefix}".
    Defined namespaces are: #{defined_namespaces.keys.join(', ')}
  MSG
end