class PactBroker::Api::Decorators::MatrixDecorator
Attributes
query_results_with_deployment_status_summary[R]
Public Class Methods
new(query_results_with_deployment_status_summary)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 14 def initialize(query_results_with_deployment_status_summary) @query_results_with_deployment_status_summary = query_results_with_deployment_status_summary end
Public Instance Methods
deployable()
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 35 def deployable query_results_with_deployment_status_summary.deployment_status_summary.deployable? end
reason()
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 39 def reason query_results_with_deployment_status_summary .deployment_status_summary .reasons .collect{ | reason | reason_decorator_class.new(reason).to_s } .join("\n") end
to_hash(options)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 22 def to_hash(options) { summary: { deployable: deployable, reason: reason }, notices: notices, matrix: matrix(options[:user_options][:base_url]) }.tap do | hash | hash[:summary].merge!(query_results_with_deployment_status_summary.deployment_status_summary.counts) end end
to_json(options)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 18 def to_json(options) to_hash(options).to_json end
Private Instance Methods
branches(branch_versions, base_url)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 104 def branches(branch_versions, base_url) branch_versions.collect do | branch_version | PactBroker::Api::Decorators::EmbeddedBranchVersionDecorator.new(branch_version).to_hash(user_options: { base_url: base_url }) end end
consumer_hash(line, consumer, consumer_version, base_url)
click to toggle source
rubocop: enable Metrics/ParameterLists
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 82 def consumer_hash(line, consumer, consumer_version, base_url) { name: line.consumer_name, version: { number: line.consumer_version_number, branch: line.consumer_version_branch_versions.last&.branch_name, branches: branches(line.consumer_version_branch_versions, base_url), _links: { self: { href: version_url(base_url, consumer_version) } }, tags: tags(line.consumer_version_tags, base_url) }, _links: { self: { href: pacticipant_url(base_url, consumer) } } } end
hash_for_row(line, base_url)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 63 def hash_for_row(line, base_url) provider = OpenStruct.new(name: line.provider_name) consumer = OpenStruct.new(name: line.consumer_name) consumer_version = OpenStruct.new(number: line.consumer_version_number, pacticipant: consumer) provider_version = line.provider_version_number ? OpenStruct.new(number: line.provider_version_number, pacticipant: provider) : nil line_hash(consumer, provider, consumer_version, provider_version, line, base_url) end
line_hash(consumer, provider, consumer_version, provider_version, line, base_url)
click to toggle source
rubocop: disable Metrics/ParameterLists
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 72 def line_hash(consumer, provider, consumer_version, provider_version, line, base_url) { consumer: consumer_hash(line, consumer, consumer_version, base_url), provider: provider_hash(line, provider, provider_version, base_url), pact: pact_hash(line, base_url), verificationResult: verification_hash(line, base_url) } end
matrix(base_url)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 55 def matrix(base_url) query_results_with_deployment_status_summary.considered_rows.collect do | line | hash_for_row(line, base_url) end + query_results_with_deployment_status_summary.ignored_rows.collect do | line | hash_for_row(line, base_url).merge(ignored: true) end end
notices()
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 186 def notices query_results_with_deployment_status_summary .deployment_status_summary .reasons .collect{ | reason | { type: reason.type, text: reason_decorator_class.new(reason).to_s } } end
pact_hash(line, base_url)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 152 def pact_hash(line, base_url) { createdAt: format_date_time(line.pact_created_at), _links: { self: { href: pact_url(base_url, line) } } } end
provider_hash(line, provider, provider_version, base_url)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 124 def provider_hash(line, provider, provider_version, base_url) hash = { name: line.provider_name, version: nil, _links: { self: { href: pacticipant_url(base_url, provider) } } } if !line.provider_version_number.nil? hash[:version] = { number: line.provider_version_number, branch: line.provider_version_branch_versions.last&.branch_name, branches: branches(line.provider_version_branch_versions, base_url), _links: { self: { href: version_url(base_url, provider_version) } }, tags: tags(line.provider_version_tags, base_url) } end hash end
reason_decorator_class()
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 51 def reason_decorator_class ReasonDecorator end
verification_hash(line, base_url)
click to toggle source
# File lib/pact_broker/api/decorators/matrix_decorator.rb, line 163 def verification_hash(line, base_url) if !line.success.nil? url_params = { consumer_name: line.consumer_name, provider_name: line.provider_name, pact_version_sha: line.pact_version_sha, consumer_version_number: line.consumer_version_number, verification_number: line.verification_number } { success: line.success, verifiedAt: format_date_time(line.verification_executed_at), _links: { self: { href: verification_url_from_params(url_params, base_url) } } } else nil end end