Module: YARD::CodeObjects::NamespaceMapper

Included in:
YARD::CodeObjects, RegistryResolver
Defined in:
lib/yard/code_objects/namespace_mapper.rb

Overview

This module controls registration and accessing of namespace separators for Registry lookup.

Since:

  • 0.9.1

Registering a Separator for a Namespace collapse

Separator and Type Lookup Helpers collapse

Instance Method Details

#clear_separatorsvoid

This method returns an undefined value.

Clears the map of separators.

Since:

  • 0.9.1



38
39
40
41
42
# File 'lib/yard/code_objects/namespace_mapper.rb', line 38

def clear_separators
  NamespaceMapper.invalidate
  NamespaceMapper.map = {}
  NamespaceMapper.rev_map = {}
end

#default_separator(value = nil) ⇒ Object

Gets or sets the default separator value to use when no separator for the namespace can be determined.

Examples:

default_separator "::"

Parameters:

  • value (String, nil) (defaults to: nil)

    the default separator, or nil to return the value

Since:

  • 0.9.1



51
52
53
54
55
56
57
# File 'lib/yard/code_objects/namespace_mapper.rb', line 51

def default_separator(value = nil)
  if value
    NamespaceMapper.default_separator = Regexp.quote value
  else
    NamespaceMapper.default_separator
  end
end

#register_separator(sep, *valid_types) ⇒ Object

Registers a separator with an optional set of valid types that must follow the separator lexically.

Examples:

Registering separators for a method object

# Anything after a "#" denotes a method object
register_separator "#", :method
# Anything after a "." denotes a method object
register_separator ".", :method

Parameters:

  • sep (String)

    the separator string for the namespace

  • valid_types (Array<Symbol>)

    a list of object types that must follow the separator. If the list is empty, any type can follow the separator.

Since:

  • 0.9.1



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/yard/code_objects/namespace_mapper.rb', line 23

def register_separator(sep, *valid_types)
  NamespaceMapper.invalidate

  valid_types.each do |t|
    NamespaceMapper.rev_map[t] ||= []
    NamespaceMapper.rev_map[t] << sep
  end

  NamespaceMapper.map[sep] ||= []
  NamespaceMapper.map[sep] += valid_types
end

#separatorsArray<String>

Returns all of the registered separators.

Returns:

Since:

  • 0.9.1



62
63
64
# File 'lib/yard/code_objects/namespace_mapper.rb', line 62

def separators
  NamespaceMapper.map.keys
end

#separators_for_type(type) ⇒ Array<Symbol>

Returns a list of separators registered to a type.

Parameters:

  • type (String)

    the type to return separators for

Returns:

  • (Array<Symbol>)

    a list of separators registered to a type

Since:

  • 0.9.1



79
80
81
# File 'lib/yard/code_objects/namespace_mapper.rb', line 79

def separators_for_type(type)
  NamespaceMapper.rev_map[type]
end

#separators_matchRegexp

Returns the regexp match of all separators.

Returns:

  • (Regexp)

    the regexp match of all separators

Since:

  • 0.9.1



67
68
69
# File 'lib/yard/code_objects/namespace_mapper.rb', line 67

def separators_match
  NamespaceMapper.map_match
end

#types_for_separator(sep) ⇒ Array<Symbol>

Returns a list of types registered to a separator.

Parameters:

  • sep (String)

    the separator to return types for

Returns:

  • (Array<Symbol>)

    a list of types registered to a separator

Since:

  • 0.9.1



73
74
75
# File 'lib/yard/code_objects/namespace_mapper.rb', line 73

def types_for_separator(sep)
  NamespaceMapper.map[sep]
end