Module: Avro::Name

Defined in:
lib/avro/schema.rb

Class Method Summary collapse

Class Method Details

.add_name(names, new_schema) ⇒ Object

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



438
439
440
441
442
443
444
445
446
447
448
449
450
# File 'lib/avro/schema.rb', line 438

def self.add_name(names, new_schema)
  new_fullname = new_schema.fullname
  if Avro::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

.extract_namespace(name, namespace) ⇒ Object



429
430
431
432
433
434
435
# File 'lib/avro/schema.rb', line 429

def self.extract_namespace(name, namespace)
  parts = name.split('.')
  if parts.size > 1
    namespace, name = parts[0..-2].join('.'), parts.last
  end
  return name, namespace
end

.make_fullname(name, namespace) ⇒ Object



452
453
454
455
456
457
458
# File 'lib/avro/schema.rb', line 452

def self.make_fullname(name, namespace)
  if !name.include?('.') && !namespace.nil?
    namespace + '.' + name
  else
    name
  end
end