class Buildkite::Builder::PluginCollection

Attributes

plugin_manager[R]

Public Class Methods

new(plugin_manager) click to toggle source
# File lib/buildkite/builder/plugin_collection.rb, line 6
def initialize(plugin_manager)
  @plugin_manager = plugin_manager
  @collection = []
end

Public Instance Methods

add(resource, options = nil) click to toggle source
# File lib/buildkite/builder/plugin_collection.rb, line 11
def add(resource, options = nil)
  plugin =
    case resource
    when Symbol
      uri = plugin_manager.fetch(resource.to_s)

      raise ArgumentError, "Plugin `#{resource}` does not exist" unless uri

      Plugin.new(uri, options)
    when String
      Plugin.new(resource, options)
    when Plugin
      resource
    else
      raise ArgumentError, "Unknown plugin `#{resource.inspect}`"
    end

  @collection.push(plugin).last
end
find(source) click to toggle source
# File lib/buildkite/builder/plugin_collection.rb, line 31
def find(source)
  source_string =
    case source
    when String then source
    when Plugin then source.source
    else raise ArgumentError, "Unknown source #{source.inspect}"
    end

  @collection.select do |plugin|
    plugin.source == source_string
  end
end
to_definition() click to toggle source
# File lib/buildkite/builder/plugin_collection.rb, line 44
def to_definition
  @collection.map(&:to_h)
end