summaryrefslogtreecommitdiff
path: root/lib/chef/dsl/recipe.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/dsl/recipe.rb')
-rw-r--r--lib/chef/dsl/recipe.rb76
1 files changed, 3 insertions, 73 deletions
diff --git a/lib/chef/dsl/recipe.rb b/lib/chef/dsl/recipe.rb
index 26c0ec6768..441fcbbd2c 100644
--- a/lib/chef/dsl/recipe.rb
+++ b/lib/chef/dsl/recipe.rb
@@ -1,7 +1,7 @@
#--
# Author:: Adam Jacob (<adam@opscode.com>)
# Author:: Christopher Walters (<cw@opscode.com>)
-# Copyright:: Copyright (c) 2008, 2009 Opscode, Inc.
+# Copyright:: Copyright (c) 2008, 2009-2015 Chef Software, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,12 +17,12 @@
# limitations under the License.
#
-require 'chef/mixin/convert_to_class_name'
require 'chef/exceptions'
require 'chef/mixin/shell_out'
require 'chef/mixin/powershell_out'
require 'chef/dsl/resources'
require 'chef/dsl/definitions'
+require 'chef/dsl/declare_resource'
class Chef
module DSL
@@ -37,76 +37,7 @@ class Chef
include Chef::DSL::Resources
include Chef::DSL::Definitions
-
- #
- # Instantiates a resource (via #build_resource), then adds it to the
- # resource collection. Note that resource classes are looked up directly,
- # so this will create the resource you intended even if the method name
- # corresponding to that resource has been overridden.
- #
- # @param type [Symbol] The type of resource (e.g. `:file` or `:package`)
- # @param name [String] The name of the resource (e.g. '/x/y.txt' or 'apache2')
- # @param created_at [String] The caller of the resource. Use `caller[0]`
- # to get the caller of your function. Defaults to the caller of this
- # function.
- # @param resource_attrs_block A block that lets you set attributes of the
- # resource (it is instance_eval'd on the resource instance).
- #
- # @return [Chef::Resource] The new resource.
- #
- # @example
- # declare_resource(:file, '/x/y.txy', caller[0]) do
- # action :delete
- # end
- # # Equivalent to
- # file '/x/y.txt' do
- # action :delete
- # end
- #
- def declare_resource(type, name, created_at=nil, &resource_attrs_block)
- created_at ||= caller[0]
-
- resource = build_resource(type, name, created_at, &resource_attrs_block)
-
- run_context.resource_collection.insert(resource, resource_type: type, instance_name: name)
- resource
- end
-
- #
- # Instantiate a resource of the given +type+ with the given +name+ and
- # attributes as given in the +resource_attrs_block+.
- #
- # The resource is NOT added to the resource collection.
- #
- # @param type [Symbol] The type of resource (e.g. `:file` or `:package`)
- # @param name [String] The name of the resource (e.g. '/x/y.txt' or 'apache2')
- # @param created_at [String] The caller of the resource. Use `caller[0]`
- # to get the caller of your function. Defaults to the caller of this
- # function.
- # @param resource_attrs_block A block that lets you set attributes of the
- # resource (it is instance_eval'd on the resource instance).
- #
- # @return [Chef::Resource] The new resource.
- #
- # @example
- # build_resource(:file, '/x/y.txy', caller[0]) do
- # action :delete
- # end
- #
- def build_resource(type, name, created_at=nil, &resource_attrs_block)
- created_at ||= caller[0]
-
- Chef::ResourceBuilder.new(
- type: type,
- name: name,
- created_at: created_at,
- params: @params,
- run_context: run_context,
- cookbook_name: cookbook_name,
- recipe_name: recipe_name,
- enclosing_provider: self.is_a?(Chef::Provider) ? self : nil
- ).build(&resource_attrs_block)
- end
+ include Chef::DSL::DeclareResource
def resource_class_for(snake_case_name)
Chef::Resource.resource_for_node(snake_case_name, run_context.node)
@@ -196,7 +127,6 @@ class Chef
end
# Avoid circular references for things that are only used in instance methods
-require 'chef/resource_builder'
require 'chef/resource'
# **DEPRECATED**