Class: GOCD::PipelineGroup

Inherits:
Object
  • Object
show all
Defined in:
lib/gocd/pipeline_status/pipelines.rb

Instance Method Summary collapse

Constructor Details

#initialize(pipelines, opts = {}) ⇒ PipelineGroup

Returns a new instance of PipelineGroup.



38
39
40
41
# File 'lib/gocd/pipeline_status/pipelines.rb', line 38

def initialize(pipelines, opts = {})
  @pipelines = pipelines
  @default_opts = {cache: false}.merge(opts)
end

Instance Method Details

#any_red?(opts = {}) ⇒ Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/gocd/pipeline_status/pipelines.rb', line 59

def any_red?(opts = {})
  !red_pipelines(opts).empty?
end

#green_pipelines(opts = {}) ⇒ Object



51
52
53
# File 'lib/gocd/pipeline_status/pipelines.rb', line 51

def green_pipelines(opts = {})
  pipelines(opts).select { |pipeline| pipeline.green? }
end

#information_available?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/gocd/pipeline_status/pipelines.rb', line 43

def information_available?
  !pipelines.nil?
end

#pipelines(opts = {}) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/gocd/pipeline_status/pipelines.rb', line 63

def pipelines(opts = {})
  merged_opts = @default_opts.merge(opts)
  if merged_opts[:cache]
    @all_pipelines ||= GOCD::PipelineRepository.pipelines
  else
    @all_pipelines = GOCD::PipelineRepository.pipelines
  end

  missing_pipelines = []
  @pipelines.select do |pipeline|
    if @all_pipelines.find { |p| p.name == pipeline }.nil?
      missing_pipelines << pipeline
    end
  end

  unless missing_pipelines.empty?
    exception = PipelinesNotFoundException.new(missing_pipelines)
    raise exception, exception.message
  end

  @pipelines.map do |pipeline|
    @all_pipelines.find { |p| p.name == pipeline }
  end
end

#red_pipelines(opts = {}) ⇒ Object



47
48
49
# File 'lib/gocd/pipeline_status/pipelines.rb', line 47

def red_pipelines(opts = {})
  pipelines(opts).select { |pipeline| pipeline.red? }
end

#status(opts = {}) ⇒ Object



55
56
57
# File 'lib/gocd/pipeline_status/pipelines.rb', line 55

def status(opts = {})
  pipelines(opts).map { |pipeline| pipeline.status }
end