class DeployPin::Task

Attributes

file[R]
group[R]
script[R]
title[R]
uuid[R]

Public Class Methods

new(file) click to toggle source
# File lib/deploy_pin/task.rb, line 12
def initialize(file)
  @file = file
  @uuid = nil
  @group = nil
  @title = ""
  @script = ""
end

Public Instance Methods

details() click to toggle source
# File lib/deploy_pin/task.rb, line 48
def details
  {
    uuid: uuid,
    group: group,
    title: title
  }
end
done?() click to toggle source
# File lib/deploy_pin/task.rb, line 30
def done?
  DeployPin::Record.where(uuid: uuid).exists?
end
eql?(task_b) click to toggle source
# File lib/deploy_pin/task.rb, line 56
def eql?(task_b)
  # same script & different uuid
  script == task_b.script && uuid != task_b.uuid
end
mark() click to toggle source
# File lib/deploy_pin/task.rb, line 25
def mark
  # store record in the DB
  DeployPin::Record.create(uuid: uuid)
end
parse_file() click to toggle source
# File lib/deploy_pin/task.rb, line 34
def parse_file
  File.foreach(file) do |line|
    case line.strip
    when /\A# (\d+):(\w+)/
      @uuid = $1
      @group = $2
    when /\A# task_title:(.+)/
      @title = $1.strip
    when /\A[^#].*/
      @script += line
    end
  end
end
run() click to toggle source
# File lib/deploy_pin/task.rb, line 20
def run
  # eval script
  eval(script)
end

Protected Instance Methods

<=>(task_b) click to toggle source

for sorting

# File lib/deploy_pin/task.rb, line 64
def <=>(task_b)
  group_index <=> task_b.group_index
end
group_index() click to toggle source
# File lib/deploy_pin/task.rb, line 68
def group_index
  DeployPin.groups.index(group)
end