Class: PactBroker::Pacts::Diff

Inherits:
Trailblazer::Operation
  • Object
show all
Includes:
Repositories
Defined in:
lib/pact_broker/pacts/diff.rb

Defined Under Namespace

Classes: DiffDecorator

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Repositories

#pact_repository, #pacticipant_repository, #tag_repository, #version_repository, #webhook_repository

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



15
16
17
# File 'lib/pact_broker/pacts/diff.rb', line 15

def options
  @options
end

#paramsObject (readonly)

Returns the value of attribute params.



15
16
17
# File 'lib/pact_broker/pacts/diff.rb', line 15

def params
  @params
end

Instance Method Details

#no_previous_version_message(pact) ⇒ Object



28
29
30
# File 'lib/pact_broker/pacts/diff.rb', line 28

def no_previous_version_message pact
  "No previous distinct version was found for #{pact.name}"
end

#outputObject



32
33
34
# File 'lib/pact_broker/pacts/diff.rb', line 32

def output
  @output
end

#process(params, options) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/pact_broker/pacts/diff.rb', line 17

def process params, options
  pact = pact_repository.find_pact(params.consumer_name, params.consumer_version_number, params.provider_name)
  previous_distinct_pact = pact_repository.find_previous_distinct_pact pact
  @output = if previous_distinct_pact
    next_pact = pact_repository.find_next_pact previous_distinct_pact
    DiffDecorator.new(pact, previous_distinct_pact, next_pact, options[:base_url]).to_text
  else
    no_previous_version_message pact
  end
end