Sha256: 752b240fd2f69c1aa7ec9597cd626137e7d01c5a0e6ceb6d887d805f98f82677

Contents?: true

Size: 1.94 KB

Versions: 49

Compression:

Stored size: 1.94 KB

Contents

require 'dante'

module Backburner
  class CLI

    def self.start(args)
      runner = Dante::Runner.new('backburner')
      runner.description = "Execute a backburner worker process"
      runner.with_options do |opts|
        opts.on("-r", "--require PATH", String, "The path to load as the environment.") do |req|
          options[:require] = req
        end
        opts.on("-q", "--queues PATH", String, "The specific queues to work.") do |queues|
          options[:queues] = queues
        end
        opts.on("-e", "--environment ENVIRONMENT", String, "The environment to run Backburner within") do |environment|
          options[:environment] = environment
        end
      end
      runner.execute do |opts|
        queues = (opts[:queues] ? opts[:queues].split(',') : nil) rescue nil
        load_environment(opts[:require], opts[:environment])
        Backburner.work(queues)
      end
    end

    protected

      def self.load_environment(file = nil, environment = nil)
        file ||= "."
        if File.directory?(file) && File.exists?(File.expand_path("#{file}/config/environment.rb"))
          ENV["RAILS_ENV"] = environment if environment && ENV["RAILS_ENV"].nil?
          require "rails"
          require File.expand_path("#{file}/config/environment.rb")
          if defined?(::Rails) && ::Rails.respond_to?(:application)
            # Rails 3
            ::Rails.application.eager_load!
          elsif defined?(::Rails::Initializer)
            # Rails 2.3
            $rails_rake_task = false
            ::Rails::Initializer.run :load_application_classes
          end
        elsif File.directory?(file) && File.exists?(File.expand_path("#{file}/config/boot.rb"))
          ENV["RACK_ENV"] = environment if environment && ENV["RACK_ENV"].nil?
          ENV["PADRINO_ROOT"] = file
          require File.expand_path("#{file}/config/boot.rb")
        elsif File.file?(file)
          require File.expand_path(file)
        end
      end

  end
end

Version data entries

49 entries across 49 versions & 2 rubygems

Version Path
backburner-allq-1.0.46 lib/backburner/cli.rb
backburner-allq-1.0.45 lib/backburner/cli.rb
backburner-allq-1.0.44 lib/backburner/cli.rb
backburner-allq-1.0.40 lib/backburner/cli.rb
backburner-allq-1.0.39 lib/backburner/cli.rb
backburner-allq-1.0.38 lib/backburner/cli.rb
backburner-allq-1.0.37 lib/backburner/cli.rb
backburner-allq-1.0.36 lib/backburner/cli.rb
backburner-1.6.0 lib/backburner/cli.rb
backburner-allq-1.0.35 lib/backburner/cli.rb
backburner-allq-1.0.34 lib/backburner/cli.rb
backburner-allq-1.0.33 lib/backburner/cli.rb
backburner-allq-1.0.32 lib/backburner/cli.rb
backburner-allq-1.0.31 lib/backburner/cli.rb
backburner-allq-1.0.29 lib/backburner/cli.rb
backburner-allq-1.0.28 lib/backburner/cli.rb
backburner-allq-1.0.27 lib/backburner/cli.rb
backburner-allq-1.0.26 lib/backburner/cli.rb
backburner-allq-1.0.25 lib/backburner/cli.rb
backburner-allq-1.0.24 lib/backburner/cli.rb