Class: JobBoss::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/job_boss/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#application_rootObject

Returns the value of attribute application_root.



5
6
7
# File 'lib/job_boss/config.rb', line 5

def application_root
  @application_root
end

#database_yaml_pathObject

Returns the value of attribute database_yaml_path.



5
6
7
# File 'lib/job_boss/config.rb', line 5

def database_yaml_path
  @database_yaml_path
end

#employee_limitObject

Returns the value of attribute employee_limit.



5
6
7
# File 'lib/job_boss/config.rb', line 5

def employee_limit
  @employee_limit
end

#environmentObject

Returns the value of attribute environment.



5
6
7
# File 'lib/job_boss/config.rb', line 5

def environment
  @environment
end

#jobs_pathObject

Returns the value of attribute jobs_path.



5
6
7
# File 'lib/job_boss/config.rb', line 5

def jobs_path
  @jobs_path
end

#log_pathObject

Returns the value of attribute log_path.



5
6
7
# File 'lib/job_boss/config.rb', line 5

def log_path
  @log_path
end

#sleep_intervalObject

Returns the value of attribute sleep_interval.



5
6
7
# File 'lib/job_boss/config.rb', line 5

def sleep_interval
  @sleep_interval
end

Instance Method Details

#parse_args(argv, options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/job_boss/config.rb', line 7

def parse_args(argv, options = {})
  @application_root     = File.expand_path(ENV['JB_APPLICATION_ROOT'] || options[:working_dir] || Dir.pwd)
  @database_yaml_path   = ENV['JB_DATABASE_YAML_PATH'] || 'config/database.yml'
  @log_path             = ENV['JB_LOG_PATH'] || 'log/job_boss.log'
  @jobs_path            = ENV['JB_JOBS_PATH'] || 'app/jobs'
  @sleep_interval       = ENV['JB_SLEEP_INTERVAL'].blank? ? 0.5 : ENV['JB_SLEEP_INTERVAL'].to_f
  @employee_limit       = ENV['JB_EMPLOYEE_LIMIT'].blank? ? 4 : ENV['JB_EMPLOYEE_LIMIT'].to_i
  @environment          = ENV['JB_ENVIRONMENT'] || ENV['RAILS_ENV'] || 'development'

  require 'optparse'

  OptionParser.new do |opts|
    opts.banner = "Usage: job_boss [start|stop|restart|run|zap] [-- <options>]"

    opts.on("-r", "--application-root PATH", "Path for the application root upon which other paths depend (defaults to .)  Environment variable: JB_APPLICATION_ROOT") do |path|
      @application_root = File.expand_path(path)
    end

    opts.on("-d", "--database-yaml PATH", "Path for database YAML (defaults to <application-root>/#{@database_yaml_path}) Environment variable: JB_DATABASE_YAML_PATH") do |path|
      @database_yaml_path = path
    end

    opts.on("-l", "--log-path PATH", "Path for log file (defaults to <application-root>/#{@log_path}) Environment variable: JB_LOG_PATH") do |path|
      @log_path = path
    end

    opts.on("-j", "--jobs-path PATH", "Path to folder with job classes (defaults to <application-root>/#{@jobs_path}) Environment variable: JB_JOBS_PATH") do |path|
      @jobs_path = path
    end

    opts.on("-e", "--environment ENV", "Environment to use in database YAML file (defaults to '#{@environment}') Environment variable: JB_ENVIRONMENT") do |env|
      @environment = env
    end

    opts.on("-s", "--sleep-interval INTERVAL", Integer, "Number of seconds for the boss to sleep between checks of the queue (default #{@sleep_interval}) Environment variable: JB_SLEEP_INTERVAL") do |interval|
      @sleep_interval = interval
    end

    opts.on("-c", "--employee-limit LIMIT", Integer, "Maximum number of employees (default 4) Environment variable: JB_EMPLOYEE_LIMIT") do |limit|
      @employee_limit = limit
    end
  end.parse!(argv)
end