Module: NameMagic::ArrayMethods

Defined in:
lib/y_support/name_magic/array_methods.rb

Instance Method Summary collapse

Instance Method Details

#_names_(option = nil) ⇒ Object Also known as: ɴ

Maps an array to an array of the element names, obtained by applying #name method to them. Takes one optional argument, which regulates its behavior regarding unnamed objects. If set to nil (default) unnamed objects will be mapped to nil (default behavior of #name method). If set to true, unnamed objects will be mapped to themselves. If set to false, unnamed objects will not be mapped at all – the returned array will contain only the names of the named objects.



38
39
40
41
42
43
44
45
46
# File 'lib/y_support/name_magic/array_methods.rb', line 38

def _names_ option=nil
  # unnamed --> nil
  return map &:_name_ if option.nil?
  # unnamed --> instance
  return map { |e| e.name || e } if option == true
  # unnamed squeezed out
  return map( &:_name_ ).compact if option == false
  fail ArgumentError, "Unknown option: #{option}"
end

#names(option = nil) ⇒ Object Also known as: full_names

Maps an array of some objects into an array of their names, obtained by applying #full_name method to them. Takes one optional argument, which regulates its behavior regarding unnamed objects. If set to nil (default), unnamed objects will be mapped to nil (default behavior of the #name method). If set to true, unnamed objects will be mapped to themselves. If set to false, unnamed objects will not be mapped at all – the returned array will contain only the names of the named objects.



14
15
16
17
18
19
20
21
22
# File 'lib/y_support/name_magic/array_methods.rb', line 14

def names option=nil
  # unnamed --> nil
  return map &:name if option.nil?
  # unnamed --> instance
  return map { |e| e.name || e } if option == true
  # unnamed squeezed out
  return map( &:name ).compact if option == false
  fail ArgumentError, "Unknown option: #{option}"
end