class Whenever::Job
Attributes
at[R]
mailto[R]
roles[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/whenever/job.rb, line 7 def initialize(options = {}) @options = options @at = options.delete(:at) @template = options.delete(:template) @mailto = options.fetch(:mailto, :default_mailto) @job_template = options.delete(:job_template) || ":job" @roles = Array(options.delete(:roles)) @options[:output] = options.has_key?(:output) ? Whenever::Output::Redirection.new(options[:output]).to_s : '' @options[:environment_variable] ||= "RAILS_ENV" @options[:environment] ||= :production @options[:path] = Shellwords.shellescape(@options[:path] || Whenever.path) end
Public Instance Methods
has_role?(role)
click to toggle source
# File lib/whenever/job.rb, line 26 def has_role?(role) roles.empty? || roles.include?(role) end
output()
click to toggle source
# File lib/whenever/job.rb, line 20 def output job = process_template(@template, @options) out = process_template(@job_template, @options.merge(:job => job)) out.gsub(/%/, '\%') end
Protected Instance Methods
escape_double_quotes(str)
click to toggle source
# File lib/whenever/job.rb, line 51 def escape_double_quotes(str) str.gsub(/"/) { '\"' } end
escape_single_quotes(str)
click to toggle source
# File lib/whenever/job.rb, line 47 def escape_single_quotes(str) str.gsub(/'/) { "'\\''" } end
process_template(template, options)
click to toggle source
# File lib/whenever/job.rb, line 32 def process_template(template, options) template.gsub(/:\w+/) do |key| before_and_after = [$`[-1..-1], $'[0..0]] option = options[key.sub(':', '').to_sym] || key if before_and_after.all? { |c| c == "'" } escape_single_quotes(option) elsif before_and_after.all? { |c| c == '"' } escape_double_quotes(option) else option end end.gsub(/\s+/m, " ").strip end