Class: Puppet::Provider::CommandDefiner Private

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/provider.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Internal helper class when creating commands - undocumented.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, path, confiner) ⇒ CommandDefiner

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of CommandDefiner


237
238
239
240
241
242
243
# File 'lib/puppet/provider.rb', line 237

def initialize(name, path, confiner)
  @name = name
  @path = path
  @optional = false
  @confiner = confiner
  @custom_environment = {}
end

Class Method Details

.define(name, path, confiner, &block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.


231
232
233
234
235
# File 'lib/puppet/provider.rb', line 231

def self.define(name, path, confiner, &block)
  definer = new(name, path, confiner)
  definer.instance_eval(&block) if block
  definer.command
end

Instance Method Details

#commandObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.


253
254
255
256
257
258
259
# File 'lib/puppet/provider.rb', line 253

def command
  if not @optional
    @confiner.confine :exists => @path, :for_binary => true
  end

  Puppet::Provider::Command.new(@name, @path, Puppet::Util, Puppet::Util::Execution, { :failonfail => true, :combine => true, :custom_environment => @custom_environment })
end

#environment(env) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.


249
250
251
# File 'lib/puppet/provider.rb', line 249

def environment(env)
  @custom_environment = @custom_environment.merge(env)
end

#is_optionalObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.


245
246
247
# File 'lib/puppet/provider.rb', line 245

def is_optional
  @optional = true
end