Module: KeyValueName

Defined in:
lib/key_value_name.rb,
lib/key_value_name/spec.rb,
lib/key_value_name/schema.rb,
lib/key_value_name/version.rb,
lib/key_value_name/collection.rb,
lib/key_value_name/marshalers.rb,
lib/key_value_name/mixins/name.rb,
lib/key_value_name/marshalers/base.rb,
lib/key_value_name/mixins/file_name.rb,
lib/key_value_name/mixins/folder_name.rb,
lib/key_value_name/builders/file_builder.rb,
lib/key_value_name/builders/folder_builder.rb,
lib/key_value_name/builders/schema_builder.rb,
lib/key_value_name/builders/container_builder.rb,
lib/key_value_name/builders/key_value_builder.rb,
lib/key_value_name/marshalers/float_marshaler.rb,
lib/key_value_name/marshalers/symbol_marshaler.rb,
lib/key_value_name/marshalers/boolean_marshaler.rb,
lib/key_value_name/marshalers/integer_marshaler.rb

Defined Under Namespace

Modules: ContainerBuilder, FileName, FolderName, Name Classes: BooleanMarshaler, Collection, FileBuilder, FloatMarshaler, FolderBuilder, IntegerMarshaler, KeyValueBuilder, MarshalerBase, Schema, SchemaBuilder, Spec, SymbolMarshaler

Constant Summary collapse

KEY_RX =
/\w+/
KEY_VALUE_SEPARATOR =
'-'
PAIR_SEPARATOR =
'.'
PAIR_SEPARATOR_RX =
/[.]/
VERSION_MAJOR =
0
VERSION_MINOR =
2
VERSION_PATCH =
0
VERSION =
[VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH].join('.')
MARSHALERS =
{
  boolean: BooleanMarshaler,
  Float => FloatMarshaler,
  Integer => IntegerMarshaler,
  Symbol => SymbolMarshaler
}.freeze

Class Method Summary collapse

Class Method Details

.camelize(name) ⇒ Object



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

def self.camelize(name)
  name.to_s.gsub(/(?:\A|_)(.)/) { Regexp.last_match(1).upcase }
end

.check_marshaler(type) ⇒ Object

Raises:

  • (ArgumentError)


20
21
22
# File 'lib/key_value_name/marshalers.rb', line 20

def self.check_marshaler(type)
  raise ArgumentError, "bad type: #{type}" unless MARSHALERS.key?(type)
end

.check_symbol(name) ⇒ Object

Raises:

  • (ArgumentError)


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

def self.check_symbol(name)
  raise ArgumentError, "bad symbol: #{name}" unless
    name.match?(/\A#{KEY_RX}\z/)
  raise ArgumentError, "reserved symbol: #{name}" if
    i[parent].member?(name)
end

.new(name = nil, &block) ⇒ Object



23
24
25
26
# File 'lib/key_value_name.rb', line 23

def self.new(name = nil, &block)
  raise unless block_given?
  FileBuilder.new(name, &block).build
end

.schema(&block) ⇒ Object



28
29
30
31
# File 'lib/key_value_name.rb', line 28

def self.schema(&block)
  raise unless block_given?
  SchemaBuilder.new(&block).build
end