Class: PactBroker::Pacticipants::FindPotentialDuplicatePacticipantNames
- Inherits:
-
Object
- Object
- PactBroker::Pacticipants::FindPotentialDuplicatePacticipantNames
- Defined in:
- lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb
Instance Attribute Summary collapse
-
#existing_names ⇒ Object
readonly
Returns the value of attribute existing_names.
-
#new_name ⇒ Object
readonly
Returns the value of attribute new_name.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
- #clean(name) ⇒ Object
-
#initialize(new_name, existing_names) ⇒ FindPotentialDuplicatePacticipantNames
constructor
A new instance of FindPotentialDuplicatePacticipantNames.
Constructor Details
#initialize(new_name, existing_names) ⇒ FindPotentialDuplicatePacticipantNames
Returns a new instance of FindPotentialDuplicatePacticipantNames.
11 12 13 14 |
# File 'lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb', line 11 def initialize new_name, existing_names @new_name = new_name @existing_names = existing_names end |
Instance Attribute Details
#existing_names ⇒ Object (readonly)
Returns the value of attribute existing_names.
9 10 11 |
# File 'lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb', line 9 def existing_names @existing_names end |
#new_name ⇒ Object (readonly)
Returns the value of attribute new_name.
9 10 11 |
# File 'lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb', line 9 def new_name @new_name end |
Class Method Details
.call(new_name, existing_names) ⇒ Object
16 17 18 |
# File 'lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb', line 16 def self.call new_name, existing_names new(new_name, existing_names).call end |
.split(string) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb', line 32 def self.split(string) string.gsub(/\s/, '_') .gsub(/::/, '/') .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr('-', '_') .downcase .split("_") end |
Instance Method Details
#call ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb', line 20 def call return [] if existing_names.include?(new_name) existing_names.select do | existing_name | clean(new_name) == clean(existing_name) end end |
#clean(name) ⇒ Object
28 29 30 |
# File 'lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb', line 28 def clean name self.class.split(name).collect{|w| w.chomp('s') } - ["api", "provider", "service"] end |