class BELParser::Expression::Model::Parameter

Attributes

encoding[R]
namespace[R]
value[R]

Public Class Methods

new(namespace, value, encoding = nil) click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 14
def initialize(namespace, value, encoding = nil)
  assert_namespace_type(namespace)
  assert_value_type(value)
  @namespace = namespace
  @value     = value
  @encoding  = encoding
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 41
def <=>(other)
  namespace_compare = @namespace <=> other.namespace
  if namespace_compare == 0
    @value <=> other.value
  else
    namespace_compare
  end
end
==(other) click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 54
def ==(other)
  return false if other == nil
  @namespace == other.namespace && @value == other.value
end
hash() click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 50
def hash
  [@namespace, @value].hash
end
invalid?() click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 37
def invalid?
  !valid?
end
namespace=(namespace) click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 22
def namespace=(namespace)
  assert_namespace_type(namespace)
  @namespace = namespace
end
to_s(_ = :short) click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 60
def to_s(_ = :short)
  if @namespace
    prefix = "#{@namespace.keyword}:"
  else
    prefix = ''
  end
  %Q{#{prefix}#{quote_if_needed(@value)}}
end
valid?() click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 32
def valid?
  return true if @namespace.nil?
  @namespace.include?(@value)
end
value=(value) click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 27
def value=(value)
  assert_value_type(value)
  @value = value
end

Private Instance Methods

assert_namespace_type(namespace) click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 71
def assert_namespace_type(namespace)
  unless namespace.nil? || namespace.is_a?(Namespace)
    msg = "namespace: expected nil or Namespace, actual #{namespace.class}"
    raise(ArgumentError, msg)
  end
end
assert_value_type(value) click to toggle source
# File lib/bel_parser/expression/model/parameter.rb, line 78
def assert_value_type(value)
  unless value.is_a?(String)
    msg = "value: expected String, actual #{value.class}"
    raise(ArgumentError, msg)
  end
end