Sha256: a390b8c08c7d205b9b508f74f89c392c7bd039b7be2d9db4a3dd2eebdbe596dc

Contents?: true

Size: 588 Bytes

Versions: 2

Compression:

Stored size: 588 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 :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

2 entries across 2 versions & 1 rubygems

Version Path
shipit-engine-0.5.1 app/models/status_group.rb
shipit-engine-0.5.0 app/models/status_group.rb