Exception: Eco::API::Common::People::Entries::MultipleSearchResults

Inherits:
StandardError
  • Object
show all
Defined in:
lib/eco/api/common/people/entries.rb

Overview

Note:

its main purpose to prevent the false pairing of duplicates or override information between different people.

Error class that allows to handle cases where multiple entries were found for the same criterion.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(msg, candidates: [], property: "email") ⇒ MultipleSearchResults

Returns a new instance of MultipleSearchResults.

Parameters:

  • msg (String)

    the basic message error.

  • candiates (Array<PersonEntry>)

    the entries that match the same search criterion.

  • property (String) (defaults to: "email")

    the property of the entry model that triggered the error (base of the search criterion).



19
20
21
22
23
# File 'lib/eco/api/common/people/entries.rb', line 19

def initialize(msg, candidates: [], property: "email")
  @candidates = candidates
  @property   = property
  super("#{msg} #{candidates_summary}")
end

Instance Attribute Details

#candidatesObject (readonly)

Returns the value of attribute candidates.



13
14
15
# File 'lib/eco/api/common/people/entries.rb', line 13

def candidates
  @candidates
end

#propertyObject (readonly)

Returns the value of attribute property.



13
14
15
# File 'lib/eco/api/common/people/entries.rb', line 13

def property
  @property
end

Instance Method Details

#candidate(index) ⇒ Person

Returns the candidate in the index position.

Returns:

  • (Person)

    the candidate in the index position



35
36
37
# File 'lib/eco/api/common/people/entries.rb', line 35

def candidate(index)
  candidates[index]
end

#identify_candidates(with_index: false) ⇒ Array<String>

Returns the candidates identified.

Parameters:

  • with_index (Boolean) (defaults to: false)

    to add an index to each candidate description.

Returns:

  • (Array<String>)

    the candidates identified



27
28
29
30
31
32
# File 'lib/eco/api/common/people/entries.rb', line 27

def identify_candidates(with_index: false)
  candidates.map.each_with_index do |entry, i|
    index = with_index ? "#{i}. " : ""
    "#{index} #{entry.identify}"
  end
end