Sha256: 55c621662d9d967956c11d9d8a4dc015767be6e56c9374ca5f999c0fcbb6f94c

Contents?: true

Size: 1.4 KB

Versions: 16

Compression:

Stored size: 1.4 KB

Contents

require 'pact/doc/markdown/interaction_renderer'
require 'pact/doc/sort_interactions'

module Pact
  module Doc
    module Markdown
      class ConsumerContractRenderer

        def initialize consumer_contract
          @consumer_contract = consumer_contract
        end

        def self.call consumer_contract
          new(consumer_contract).call
        end

        def call
          title + summaries_title + summaries.join + interactions_title + full_interactions.join
        end

        private

        attr_reader :consumer_contract

        def title
          "### A pact between #{consumer_contract.consumer.name} and #{consumer_contract.provider.name}\n\n"
        end

        def interaction_renderers
          @interaction_renderers ||= sorted_interactions.collect{|interaction| InteractionRenderer.new interaction, @consumer_contract}
        end

        def summaries_title
          "#### Requests from #{consumer_contract.consumer.name} to #{consumer_contract.provider.name}\n\n"
        end

        def interactions_title
          "#### Interactions\n\n"
        end

        def summaries
          interaction_renderers.collect(&:render_summary)
        end

        def full_interactions
          interaction_renderers.collect(&:render_full_interaction)
        end

        def sorted_interactions
          SortInteractions.call(consumer_contract.interactions)
        end

      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
pact-1.8.1 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.8.0 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.7.0 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.6.0 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.5.0 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.4.0 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.4.0.rc4 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.4.0.rc3 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.4.0.rc2 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.3.3 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.3.2 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.3.1 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.3.0 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.2.1.rc2 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.2.1.rc1 lib/pact/doc/markdown/consumer_contract_renderer.rb
pact-1.1.1 lib/pact/doc/markdown/consumer_contract_renderer.rb