Class: Pact::ConsumerContractWriter

Inherits:
Object
  • Object
show all
Includes:
ActiveSupportSupport, FileName, PactFile
Defined in:
lib/pact/consumer_contract/consumer_contract_writer.rb

Constant Summary collapse

DEFAULT_PACT_SPECIFICATION_VERSION =
'1.0.0'

Instance Method Summary collapse

Constructor Details

#initialize(consumer_contract_details, logger) ⇒ ConsumerContractWriter

Returns a new instance of ConsumerContractWriter.



21
22
23
24
25
26
27
# File 'lib/pact/consumer_contract/consumer_contract_writer.rb', line 21

def initialize consumer_contract_details, logger
  @logger = logger
  @consumer_contract_details = consumer_contract_details
  @pactfile_write_mode = consumer_contract_details.fetch(:pactfile_write_mode, :overwrite).to_sym
  @interactions = consumer_contract_details.fetch(:interactions)
  @pact_specification_version = (consumer_contract_details[:pact_specification_version] || DEFAULT_PACT_SPECIFICATION_VERSION).to_s
end

Instance Method Details

#can_write?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/pact/consumer_contract/consumer_contract_writer.rb', line 41

def can_write?
  consumer_name && provider_name && consumer_contract_details[:pact_dir]
end

#consumer_contractObject



29
30
31
32
33
34
# File 'lib/pact/consumer_contract/consumer_contract_writer.rb', line 29

def consumer_contract
  @consumer_contract ||= Pact::ConsumerContract.new(
    consumer: ServiceConsumer.new(name: consumer_contract_details[:consumer][:name]),
    provider: ServiceProvider.new(name: consumer_contract_details[:provider][:name]),
    interactions: interactions_for_new_consumer_contract)
end

#writeObject



36
37
38
39
# File 'lib/pact/consumer_contract/consumer_contract_writer.rb', line 36

def write
  update_pactfile
  pact_json
end