Class: Whenever::Job

Inherits:
Object
  • Object
show all
Defined in:
lib/whenever/job.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Job

Returns a new instance of Job.



7
8
9
10
11
12
13
14
15
16
# File 'lib/whenever/job.rb', line 7

def initialize(options = {})
  @options = options
  @at                      = options.delete(:at)
  @template                = options.delete(:template)
  @job_template            = options.delete(:job_template) || ":job"
  @roles                   = Array.wrap(options.delete(:roles))
  @options[:output]        = options.has_key?(:output) ? Whenever::Output::Redirection.new(options[:output]).to_s : ''
  @options[:environment] ||= :production
  @options[:path]          = Shellwords.shellescape(@options[:path] || Whenever.path)
end

Instance Attribute Details

#atObject (readonly)

Returns the value of attribute at.



5
6
7
# File 'lib/whenever/job.rb', line 5

def at
  @at
end

#rolesObject (readonly)

Returns the value of attribute roles.



5
6
7
# File 'lib/whenever/job.rb', line 5

def roles
  @roles
end

Instance Method Details

#has_role?(role) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/whenever/job.rb', line 27

def has_role?(role)
  roles.empty? || roles.include?(role)
end

#outputObject



18
19
20
21
22
23
24
25
# File 'lib/whenever/job.rb', line 18

def output
  job = process_template(@template, @options).strip
  out = process_template(@job_template, { :job => job }).strip
  if out =~ /\n/
    raise ArgumentError, "Task contains newline"
  end
  out.gsub(/%/, '\%')
end