class P4Util::Tasks

Creates a few tasks to allow launching init and kill commands via rake tasks, which should make it easy to script with test tasks, for example.

Example:

require 'p4util/tasks'

P4Util::Tasks.new do |p4util|
  p4util.version = 'r14.2' # Indicate p4d version to download
end

Tasks:

Attributes

basename[RW]

The task base name, defaults to ‘:p4’

p4_init_dir[RW]

The directory containing p4 init scripts, defaults to ‘p4init’

version[RW]

P4 Version to use, defaults to ‘r14.2’

Public Class Methods

new(basename = :p4) { |self| ... } click to toggle source
# File lib/p4util/tasks.rb, line 35
def initialize basename = :p4
  @basename = basename
  @version = 'r14.2'
  @p4_init_dir = 'p4init'

  yield self if block_given?

  define_tasks
end

Public Instance Methods

define_tasks() click to toggle source

Create the tasks defined by this task library

# File lib/p4util/tasks.rb, line 46
def define_tasks
  desc init_task_description
  task init_task_name do
    options = OpenStruct.new
    options.params = [p4_init_dir, '--version', version]
    Commands.init(options)
  end

  desc kill_task_description
  task kill_task_name do
    options = OpenStruct.new
    options.params = ['--version', version]
    Commands.kill(options)
  end

  desc reset_task_description
  task reset_task_name => kill_task_name do
    FileUtils.rmtree(Conventions.p4droot_dir)
  end

  self
end
init_task_description() click to toggle source
# File lib/p4util/tasks.rb, line 69
def init_task_description
  "Initializes a p4d instance, and ensures it's downloaded and running"
end
init_task_name() click to toggle source
# File lib/p4util/tasks.rb, line 73
def init_task_name
  "#{basename}init"
end
kill_task_description() click to toggle source
# File lib/p4util/tasks.rb, line 77
def kill_task_description
  'Halt any locally running p4d instance'
end
kill_task_name() click to toggle source
# File lib/p4util/tasks.rb, line 81
def kill_task_name
  "#{basename}kill"
end
reset_task_description() click to toggle source
# File lib/p4util/tasks.rb, line 85
def reset_task_description
  'Cleans out the current p4droot working directory (after killing p4d)'
end
reset_task_name() click to toggle source
# File lib/p4util/tasks.rb, line 89
def reset_task_name
  "#{basename}reset"
end