Class: Iface::ValueSet::Pair
- Inherits:
-
Object
- Object
- Iface::ValueSet::Pair
- Defined in:
- lib/iface/value_set/pair.rb
Overview
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.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#value ⇒ Object
Returns the value of attribute value.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(name, value, value_set) ⇒ Pair
constructor
:nodoc:.
- #raw_value ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(name, value, value_set) ⇒ Pair
:nodoc:
28 29 30 31 32 |
# File 'lib/iface/value_set/pair.rb', line 28 def initialize(name, value, value_set) # :nodoc: @name = name.to_s.upcase @value = value @value_set = value_set end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
10 11 12 |
# File 'lib/iface/value_set/pair.rb', line 10 def name @name end |
#value ⇒ Object
Returns the value of attribute value.
11 12 13 |
# File 'lib/iface/value_set/pair.rb', line 11 def value @value end |
Class Method Details
.create(name_or_line, value = nil, value_set:) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# 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 |
Instance Method Details
#raw_value ⇒ Object
34 35 36 |
# File 'lib/iface/value_set/pair.rb', line 34 def raw_value @value end |
#to_s ⇒ Object
38 39 40 |
# File 'lib/iface/value_set/pair.rb', line 38 def to_s "#{name}=\"#{value}\"" end |