Sha256: 6bd3c18197938238e8a0525d481c2a601e68d50881e1b61fe47a906a0bafbb96
Contents?: true
Size: 1.96 KB
Versions: 1
Compression:
Stored size: 1.96 KB
Contents
require 'pact/consumer_contract' require 'pact/reification' require 'redcarpet' require 'pact/doc/markdown/consumer_contract_renderer' require 'pact_broker/api/pact_broker_urls' module PactBroker module Api module Renderers class HtmlPactRenderer def self.call pact new(pact).call end def initialize pact @json_content = pact.json_content @pact = pact end def call "<html><head>#{head}</head><body>#{pact_metadata}#{html}</body></html>" end private def head '<link rel="stylesheet" type="text/css" href="/stylesheets/github.css">' + "\n" + '<link rel="stylesheet" type="text/css" href="/stylesheets/pact.css">' end def pact_metadata "<div class='pact-metadata'> <ul> <li> <span class='name'>#{@pact.consumer.name} version:</span> <span class='value'>#{@pact.consumer_version_number}</span> </li> <li> <span class='name'>Date published:</span> <span class='value'>#{@pact.updated_at.to_time.localtime.to_datetime.strftime("%d/%m/%Y %l:%M%p %:z")}</span> </li> <li> <a href=\"#{json_url}\">View in HAL Browser</a> </li> </ul> </div>" end def json_url PactBroker::Api::PactBrokerUrls.hal_browser_url pact_url end def pact_url PactBroker::Api::PactBrokerUrls.pact_url '', @pact end def markdown Pact::Doc::Markdown::ConsumerContractRenderer.call consumer_contract end def html Redcarpet::Markdown.new(Redcarpet::Render::HTML, :fenced_code_blocks => true, :lax_spacing => true).render(markdown) end def consumer_contract Pact::ConsumerContract.from_json(@json_content) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pact_broker-1.2.0 | lib/pact_broker/api/renderers/html_pact_renderer.rb |