Class: BELParser::Language::ApplyDefaultNamespace
- Inherits:
-
Object
- Object
- BELParser::Language::ApplyDefaultNamespace
- Includes:
- TermTransformation
- Defined in:
- lib/bel_parser/language/apply_default_namespace.rb
Overview
ApplyDefaultNamespace sets the DEFAULT namespace for values when one is not provided. Applies to all namespace values within a BEL 2.0 expression.
Constant Summary
Constants included from TermTransformation
TermTransformation::ACTIVITIES, TermTransformation::PMODTYPES
Instance Method Summary collapse
-
#initialize(language_spec, namespace_hash, uri_reader, url_reader) ⇒ ApplyDefaultNamespace
constructor
A new instance of ApplyDefaultNamespace.
- #on_argument(argument_node) ⇒ Object
- #on_parameter(parameter_node) ⇒ Object
- #on_prefix(prefix_node) ⇒ Object
- #on_term(term_node) ⇒ Object
Methods included from TermTransformation
#collapse, #on_function, #on_nested_statement, #on_object, #on_observed_term, #on_simple_statement, #on_statement, #on_subject
Methods included from Parsers::AST::Sexp
#annotation_definition, #argument, #blank_line, build, #comment, #comment_line, #document_property, #domain, #function, #identifier, #keyword, #list, #list_item, #multi_identifier, #name, #namespace_definition, #nested_statement, #object, #observed_term, #parameter, #pattern, #prefix, #relationship, #set, #simple_statement, #statement, #string, #subject, #term, #unset, #uri, #url, #value
Methods included from AST::Processor::Mixin
#handler_missing, #process, #process_all
Constructor Details
#initialize(language_spec, namespace_hash, uri_reader, url_reader) ⇒ ApplyDefaultNamespace
Returns a new instance of ApplyDefaultNamespace.
10 11 12 13 14 15 |
# File 'lib/bel_parser/language/apply_default_namespace.rb', line 10 def initialize(language_spec, namespace_hash, uri_reader, url_reader) @language_spec = language_spec @namespace_hash = namespace_hash @uri_reader = uri_reader @url_reader = url_reader end |
Instance Method Details
#on_argument(argument_node) ⇒ Object
24 25 26 |
# File 'lib/bel_parser/language/apply_default_namespace.rb', line 24 def on_argument(argument_node) process(argument_node.child) end |
#on_parameter(parameter_node) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/bel_parser/language/apply_default_namespace.rb', line 28 def on_parameter(parameter_node) parameter_node.updated([ process(parameter_node.prefix), parameter_node.value ].flatten) end |
#on_prefix(prefix_node) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/bel_parser/language/apply_default_namespace.rb', line 35 def on_prefix(prefix_node) # guard: return prefix AST node if namespace already supplied return prefix_node if prefix_node.identifier # return "DEFAULT" namespace prefix( identifier( 'DEFAULT', :complete => true), :complete => true) end |
#on_term(term_node) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/bel_parser/language/apply_default_namespace.rb', line 17 def on_term(term_node) term_node.updated([ term_node.function, term_node.arguments.map! {|arg| argument(process(arg.child))} ].flatten) end |