# class Chef::RunList

### Public Class Methods

new(*run_list_items) click to toggle source

    # File lib/chef/run_list.rb, line 45
    def initialize(*run_list_items)
      @run_list_items = run_list_items.map { |i| coerce_to_run_list_item(i) }
    end

### Public Instance Methods

<<(run_list_item) click to toggle source

Add an item of the form “recipe” or “role”; takes a String or a RunListItem

    # File lib/chef/run_list.rb, line 63
    def <<(run_list_item)
      run_list_item = coerce_to_run_list_item(run_list_item)
      @run_list_items << run_list_item unless @run_list_items.include?(run_list_item)
      self
    end

Also aliased as: push, add
==(other) click to toggle source

    # File lib/chef/run_list.rb, line 72
    def ==(other)
      if other.kind_of?(Chef::RunList)
        other.run_list_items == @run_list_items
      else
        return false unless other.respond_to?(:size) && (other.size == @run_list_items.size)
        other_run_list_items = other.dup

        other_run_list_items.map! { |item| coerce_to_run_list_item(item) }
        other_run_list_items == @run_list_items
      end
    end

[](pos) click to toggle source

    # File lib/chef/run_list.rb, line 96
    def [](pos)
      @run_list_items[pos]
    end

[]=(pos, item) click to toggle source

    # File lib/chef/run_list.rb, line 100
    def []=(pos, item)
      @run_list_items[pos] = parse_entry(item)
    end

add(run_list_item)
Alias for: <<
coerce_to_run_list_item(item) click to toggle source

    # File lib/chef/run_list.rb, line 148
    def coerce_to_run_list_item(item)
      item.kind_of?(RunListItem) ? item : parse_entry(item)
    end

delete(item)
Alias for: remove
each(&block) click to toggle source

    # File lib/chef/run_list.rb, line 104
    def each(&block)
      @run_list_items.each { |i| block.call(i) }
    end

each_index(&block) click to toggle source

    # File lib/chef/run_list.rb, line 108
    def each_index(&block)
      @run_list_items.each_index { |i| block.call(i) }
    end

empty?() click to toggle source

    # File lib/chef/run_list.rb, line 92
    def empty?
      @run_list_items.length == 0 ? true : false
    end

expand(environment, data_source='server', expansion_opts={}) click to toggle source

Expands this #run_list: recursively expand roles into their included recipes. Returns a RunListExpansion object.

    # File lib/chef/run_list.rb, line 137
    def expand(environment, data_source='server', expansion_opts={})
      expansion = expansion_for_data_source(environment, data_source, expansion_opts)
      expansion.expand
      expansion
    end

expansion_for_data_source(environment, data_source, opts={}) click to toggle source

    # File lib/chef/run_list.rb, line 152
    def expansion_for_data_source(environment, data_source, opts={})
      case data_source.to_s
      when 'disk'
        RunListExpansionFromDisk.new(environment, @run_list_items)
      when 'server'
        RunListExpansionFromAPI.new(environment, @run_list_items, opts[:rest])
      end
    end

include?(item) click to toggle source

    # File lib/chef/run_list.rb, line 112
    def include?(item)
      @run_list_items.include?(parse_entry(item))
    end

parse_entry(entry) click to toggle source

Converts a string run list entry to a RunListItem object.

    # File lib/chef/run_list.rb, line 144
    def parse_entry(entry)
      RunListItem.new(entry)
    end

push(run_list_item)
Alias for: <<
recipe_names() click to toggle source

    # File lib/chef/run_list.rb, line 55
    def recipe_names
      @run_list_items.inject([]){|memo, run_list_item| memo << run_list_item.name if run_list_item.recipe? ; memo}
    end

Also aliased as: recipes
recipes()
Alias for: recipe_names
remove(item) click to toggle source

    # File lib/chef/run_list.rb, line 128
    def remove(item)
      @run_list_items.delete_if{|i| i == item}
      self
    end

Also aliased as: delete
reset!(*args) click to toggle source

    # File lib/chef/run_list.rb, line 116
    def reset!(*args)
      @run_list_items.clear
      args.flatten.each do |item|
        if item.kind_of?(Chef::RunList)
          item.each { |r| self << r }
        else
          self << item
        end
      end
      self
    end

role_names() click to toggle source

    # File lib/chef/run_list.rb, line 49
    def role_names
      @run_list_items.inject([]){|memo, run_list_item| memo << run_list_item.name if run_list_item.role? ; memo}
    end

Also aliased as: roles
roles()
Alias for: role_names
to_json(*args) click to toggle source

    # File lib/chef/run_list.rb, line 88
    def to_json(*args)
      to_a.map { |item| item.to_s}.to_json(*args)
    end

to_s() click to toggle source

    # File lib/chef/run_list.rb, line 84
    def to_s
      @run_list_items.join(", ")
    end