Method: Chef::Resource.provides

Defined in:
lib/chef/resource.rb

.provides(name, **options, &block) ⇒ Object

Mark this resource as providing particular DSL.

Resources have an automatic DSL based on their resource_name, equivalent to ‘provides :resource_name` (providing the resource on all OS’s). If you declare a provides with the given resource_name, it replaces that provides (so that you can provide your resource DSL only on certain OS’s).



1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
# File 'lib/chef/resource.rb', line 1376

def self.provides(name, **options, &block)
  name = name.to_sym

  # deliberately do not go through the accessor here
  @resource_name = name if resource_name.nil?

  if chef_version_for_provides && !options.include?(:chef_version)
    options[:chef_version] = chef_version_for_provides
  end

  result = Chef.resource_handler_map.set(name, self, **options, &block)
  Chef::DSL::Resources.add_resource_dsl(name)
  result
end