Method: Tros::Name.add_name

Defined in:
lib/tros/schema.rb

.add_name(names, new_schema) ⇒ Object

Add a new schema object to the names dictionary (in place).



383
384
385
386
387
388
389
390
391
392
393
394
395
# File 'lib/tros/schema.rb', line 383

def self.add_name(names, new_schema)
  new_fullname = new_schema.fullname
  if Tros::Schema::VALID_TYPES.include?(new_fullname)
    raise SchemaParseError, "#{new_fullname} is a reserved type name."
  elsif names.nil?
    names = {}
  elsif names.has_key?(new_fullname)
    raise SchemaParseError, "The name \"#{new_fullname}\" is already in use."
  end

  names[new_fullname] = new_schema
  names
end