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
==(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
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
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
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
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
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