class Iface::ValueSet::Pair

Represents a NAME=value pair

This serves as the default class for a NAME key. Use `::create` to instantiate a specialization of this class, if available.

Attributes

name[R]
value[RW]

Public Class Methods

create(name_or_line, value = nil, value_set:) click to toggle source
# File lib/iface/value_set/pair.rb, line 13
def self.create(name_or_line, value = nil, value_set:)
  # get name and value
  if value
    name = name_or_line.to_s.upcase
  else
    match = name_or_line.match(/(^[A-Z0-9_]+?)="?(.*?)"?$/)
    raise ArgumentError, "Expected pattern NAME=value; got #{name_or_line.inspect}" unless match
    name = match[1]
    value = match[2]&.sub(/^"/, '')&.sub(/"$/, '')
  end

  # find matching class and instantiate
  VAR_HANDLERS.fetch(name, self).new(name, value, value_set)
end

Public Instance Methods

raw_value() click to toggle source
# File lib/iface/value_set/pair.rb, line 34
def raw_value
  @value
end
to_s() click to toggle source
# File lib/iface/value_set/pair.rb, line 38
def to_s
  "#{name}=\"#{value}\""
end