Parent

Included Modules

Class/Module Index [+]

Quicksearch

Chef::Resource::Conditional

Attributes

block[R]
command[R]
command_opts[R]
positivity[R]

Public Class Methods

new(positivity, command=nil, command_opts={}, &block) click to toggle source
# File lib/chef/resource/conditional.rb, line 45
def initialize(positivity, command=nil, command_opts={}, &block)
  @positivity = positivity
  case command
  when String
    @command, @command_opts = command, command_opts
    @block = nil
  when nil
    raise ArgumentError, "only_if/not_if requires either a command or a block" unless block_given?
    @command, @command_opts = nil, nil
    @block = block
  else
    raise ArgumentError, "Invalid only_if/not_if command: #{command.inspect} (#{command.class})"
  end
end
not_if(command=nil, command_opts={}, &block) click to toggle source
# File lib/chef/resource/conditional.rb, line 32
def self.not_if(command=nil, command_opts={}, &block)
  new(:not_if, command, command_opts, &block)
end
only_if(command=nil, command_opts={}, &block) click to toggle source
# File lib/chef/resource/conditional.rb, line 36
def self.only_if(command=nil, command_opts={}, &block)
  new(:only_if, command, command_opts, &block)
end

Public Instance Methods

continue?() click to toggle source
# File lib/chef/resource/conditional.rb, line 60
def continue?
  case @positivity
  when :only_if
    evaluate
  when :not_if
    !evaluate
  else
    raise "Cannot evaluate resource conditional of type #{@positivity}"
  end
end
description() click to toggle source
# File lib/chef/resource/conditional.rb, line 86
def description
  cmd_or_block = @command ? "command `#{@command}`" : "ruby block"
  "#{@positivity} #{cmd_or_block}"
end
evaluate() click to toggle source
# File lib/chef/resource/conditional.rb, line 71
def evaluate
  @command ? evaluate_command : evaluate_block
end
evaluate_block() click to toggle source
# File lib/chef/resource/conditional.rb, line 82
def evaluate_block
  @block.call
end
evaluate_command() click to toggle source
# File lib/chef/resource/conditional.rb, line 75
def evaluate_command
  shell_out(@command, @command_opts).status.success?
rescue Chef::Exceptions::CommandTimeout
  Chef::Log.warn "Command '#{@command}' timed out"
  false
end
to_text() click to toggle source
# File lib/chef/resource/conditional.rb, line 91
def to_text
  if @command
    "#{positivity} \"#{@command}\""
  else
    "#{@positivity} { #code block }"
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.