class Chef::Recipe

Chef::Recipe

A Recipe object is the context in which Chef recipes are evaluated.

Attributes

cookbook_name[RW]
params[RW]
recipe[RW]
recipe_name[RW]
run_context[RW]

Public Class Methods

new(cookbook_name, recipe_name, run_context) click to toggle source
# File lib/chef/recipe.rb, line 66
def initialize(cookbook_name, recipe_name, run_context)
  @cookbook_name = cookbook_name
  @recipe_name = recipe_name
  @run_context = run_context
  # TODO: 5/19/2010 cw/tim: determine whether this can be removed
  @params = Hash.new
  @node = deprecated_ivar(run_context.node, :node, :warn)
end
parse_recipe_name(recipe_name) click to toggle source

Parses a potentially fully-qualified recipe name into its cookbook name and recipe short name.

For example:

"aws::elastic_ip" returns [:aws, "elastic_ip"]
"aws" returns [:aws, "default"]
# File lib/chef/recipe.rb, line 57
def self.parse_recipe_name(recipe_name)
  rmatch = recipe_name.match(/(.+?)::(.+)/)
  if rmatch
    [ rmatch[1].to_sym, rmatch[2] ]
  else
    [ recipe_name.to_sym, "default" ]
  end
end

Public Instance Methods

node() click to toggle source

Used in DSL mixins

# File lib/chef/recipe.rb, line 76
def node
  run_context.node
end
resources(*args) click to toggle source

Used by the DSL to look up resources when executing in the context of a recipe.

# File lib/chef/recipe.rb, line 82
def resources(*args)
  run_context.resource_collection.find(*args)
end
tag(*tags) click to toggle source

This was moved to Chef::Node#tag, redirecting here for compatability

# File lib/chef/recipe.rb, line 87
def tag(*tags)
  run_context.node.tag(*tags)
end
tagged?(*tags) click to toggle source

Returns true if the node is tagged with all of the supplied tags.

Parameters

tags<Array>

A list of tags

Returns

true<TrueClass>

If all the parameters are present

false<FalseClass>

If any of the parameters are missing

# File lib/chef/recipe.rb, line 99
def tagged?(*tags)
  tags.each do |tag|
    return false unless run_context.node[:tags].include?(tag)
  end
  true
end
untag(*tags) click to toggle source

Removes the list of tags from the node.

Parameters

tags<Array>

A list of tags

Returns

tags<Array>

The current list of run_context.node

# File lib/chef/recipe.rb, line 113
def untag(*tags)
  tags.each do |tag|
    run_context.node.normal[:tags].delete(tag)
  end
end