Module: KeyValueName

Defined in:
lib/key_value_name.rb,
lib/key_value_name/spec.rb,
lib/key_value_name/builder.rb,
lib/key_value_name/version.rb,
lib/key_value_name/marshalers.rb,
lib/key_value_name/marshalers/base.rb,
lib/key_value_name/marshalers/symbol_marshaler.rb,
lib/key_value_name/marshalers/numeric_marshaler.rb

Overview

A terrible idea, but also a useful one.

Defined Under Namespace

Classes: Builder, MarshalerBase, NumericMarshaler, Spec, SymbolMarshaler

Constant Summary collapse

KEY_RX =
/\w+/
KEY_VALUE_SEPARATOR =
'-'
PAIR_SEPARATOR =
'.'
PAIR_SEPARATOR_RX =
/[.]/
VERSION_MAJOR =
0
VERSION_MINOR =
0
VERSION_PATCH =
1
VERSION =
[VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH].join('.')
MARSHALERS =
{
  Numeric => NumericMarshaler,
  Symbol => SymbolMarshaler
}.freeze

Class Method Summary collapse

Class Method Details

.check_symbol(name) ⇒ Object

Raises:

  • (ArgumentError)


12
13
14
# File 'lib/key_value_name.rb', line 12

def self.check_symbol(name)
  raise ArgumentError, "bad symbol: #{name}" unless name =~ /\A#{KEY_RX}\z/
end

.new {|builder| ... } ⇒ Object

Yields:

  • (builder)


16
17
18
19
20
# File 'lib/key_value_name.rb', line 16

def self.new
  builder = Builder.new
  yield builder
  builder.build
end