Class: Whenever::JobList
- Inherits:
-
Object
- Object
- Whenever::JobList
- Defined in:
- lib/whenever/job_list.rb
Instance Attribute Summary collapse
-
#roles ⇒ Object
readonly
Returns the value of attribute roles.
Instance Method Summary collapse
- #env(variable, value) ⇒ Object
- #every(frequency, options = {}) ⇒ Object
- #generate_cron_output ⇒ Object
-
#initialize(options) ⇒ JobList
constructor
A new instance of JobList.
- #job_type(name, template) ⇒ Object
- #set(variable, value) ⇒ Object
Constructor Details
#initialize(options) ⇒ JobList
Returns a new instance of JobList.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/whenever/job_list.rb', line 5 def initialize() @jobs, @env, @set_variables, @pre_set_variables = {}, {}, {}, {} if .is_a? String = { :string => } end pre_set([:set]) @roles = [:roles] || [] setup_file = File.('../setup.rb', __FILE__) setup = File.read(setup_file) schedule = if [:string] [:string] elsif [:file] File.read([:file]) end instance_eval(setup, setup_file) instance_eval(schedule, [:file] || '<eval>') end |
Instance Attribute Details
#roles ⇒ Object (readonly)
Returns the value of attribute roles.
3 4 5 |
# File 'lib/whenever/job_list.rb', line 3 def roles @roles end |
Instance Method Details
#env(variable, value) ⇒ Object
37 38 39 |
# File 'lib/whenever/job_list.rb', line 37 def env(variable, value) @env[variable.to_s] = value end |
#every(frequency, options = {}) ⇒ Object
41 42 43 44 45 |
# File 'lib/whenever/job_list.rb', line 41 def every(frequency, = {}) @current_time_scope = frequency @options = yield end |
#generate_cron_output ⇒ Object
64 65 66 |
# File 'lib/whenever/job_list.rb', line 64 def generate_cron_output [environment_variables, cron_jobs].compact.join end |
#job_type(name, template) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/whenever/job_list.rb', line 47 def job_type(name, template) singleton_class.class_eval do define_method(name) do |task, *args| = { :task => task, :template => template } .merge!(args[0]) if args[0].is_a? Hash # :cron_log was an old option for output redirection, it remains for backwards compatibility [:output] = ([:cron_log] || @cron_log) if defined?(@cron_log) || .has_key?(:cron_log) # :output is the newer, more flexible option. [:output] = @output if defined?(@output) && !.has_key?(:output) @jobs[@current_time_scope] ||= [] @jobs[@current_time_scope] << Whenever::Job.new(@options.merge(@set_variables).merge()) end end end |
#set(variable, value) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/whenever/job_list.rb', line 28 def set(variable, value) variable = variable.to_sym return if @pre_set_variables[variable] instance_variable_set("@#{variable}".to_sym, value) self.class.send(:attr_reader, variable.to_sym) @set_variables[variable] = value end |