class BELParser::Expression::Model::Namespace
Namespace
represents a catalog of biological identifiers that are to identify parameter values like genes (e.g. AKT1), diseases (e.g. hypertropia), and processes (e.g. anaphase).
Attributes
keyword[RW]
uri[RW]
uri_reader[R]
url[RW]
url_reader[R]
Public Class Methods
new(keyword, uri = nil, url = nil, options = {})
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 17 def initialize(keyword, uri = nil, url = nil, options = {}) raise(ArgumentError, 'keyword is nil') unless keyword @keyword = keyword @uri = uri @url = url # configure reader for URIs (RDF). @uri_reader = options.fetch(:uri_reader, BELParser::Resource.default_uri_reader) BELParser::Resource::Reader.assert_reader(@uri_reader, 'uri_reader') # configure reader for URLs (Resource files). @url_reader = options.fetch(:url_reader, BELParser::Resource.default_url_reader) BELParser::Resource::Reader.assert_reader(@url_reader, 'url_reader') end
Public Instance Methods
==(other)
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 131 def ==(other) return false if other.nil? @keyword == other.keyword && @uri == other.uri && @url == other.url end
[](value)
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 82 def [](value) resolved_value = if uri? && @uri_reader @uri_reader.retrieve_value_from_resource(@uri, value) elsif url? && @url_reader @url_reader.retrieve_value_from_resource(@url, value) else nil end if resolved_value match = if resolved_value.size == 1 resolved_value.first else # first, find match by name, identifier, title # otherwise, select first match (e.g. multiple match by synonym) resolved_value.find { |v| [v.name, v.identifier, v.title].any? { |s| s == value } } || resolved_value.first end Parameter.new(self, match.name, match.encodings) else Parameter.new(self, value, nil) end end
domain()
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 59 def domain case when uri? @uri when url? @url else nil end end
domain_equal?(other)
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 137 def domain_equal?(other) return false if other.nil? @uri == other.uri && @url == other.url end
each() { |parameter| ... }
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 109 def each if block_given? values = if uri? @uri_reader.retrieve_values_from_resource(@uri) elsif url? @url_reader.retrieve_values_from_resource(@url) else [] end values.each do |value| yield Parameter.new(self, value.name, value.encodings) end else to_enum(:each) end end
hash()
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 127 def hash [@keyword, @uri, @url].hash end
include?(value)
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 70 def include?(value) resolved_value = if uri? && @uri_reader @uri_reader.retrieve_value_from_resource(@uri, value) elsif url? && @url_reader @url_reader.retrieve_value_from_resource(@url, value) else nil end !resolved_value.nil? end
initialize_copy(original)
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 32 def initialize_copy(original) @keyword = original.keyword @uri = original.uri @uri_reader = original.uri_reader @url = original.url @url_reader = original.url_reader end
to_s()
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 142 def to_s @keyword.to_s end
type()
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 48 def type case when uri? :uri when url? :url else nil end end
uri?()
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 40 def uri? !@uri.nil? end
url?()
click to toggle source
# File lib/bel_parser/expression/model/namespace.rb, line 44 def url? !@url.nil? end