Sha256: 28298c6326615d097feb475c5d12165ab0b520d0ac1cf8f003c108ab340a78b1

Contents?: true

Size: 599 Bytes

Versions: 1

Compression:

Stored size: 599 Bytes

Contents

class StatusGroup
  STATES_PRIORITY = %w(failure error pending success).freeze

  attr_reader :statuses, :significant_status

  def initialize(significant_status, visible_statuses)
    @significant_status = significant_status
    @statuses = visible_statuses
  end

  delegate :success?, :state, to: :significant_status

  def description
    "#{success_count} / #{statuses.count} checks OK"
  end

  def target_url
  end

  def to_partial_path
    'statuses/group'
  end

  def group?
    true
  end

  private

  def success_count
    @statuses.count { |s| s.state == 'success'.freeze }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shipit-engine-0.5.2 app/models/status_group.rb