delayed_job_web 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of delayed_job_web might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +1 -12
- data/README.markdown +27 -2
- data/Rakefile +0 -14
- data/delayed_job_web.gemspec +18 -56
- data/lib/delayed_job_web/application/app.rb +31 -23
- data/lib/delayed_job_web/application/views/enqueued.erb +13 -0
- data/lib/delayed_job_web/application/views/error.erb +2 -0
- data/lib/delayed_job_web/application/views/failed.erb +21 -0
- data/lib/delayed_job_web/application/views/job.erb +61 -0
- data/lib/delayed_job_web/application/views/layout.erb +41 -0
- data/lib/delayed_job_web/application/views/next_more.erb +11 -0
- data/lib/delayed_job_web/application/views/overview.erb +45 -0
- data/lib/delayed_job_web/application/views/pending.erb +18 -0
- data/lib/delayed_job_web/application/views/stats.erb +36 -0
- data/lib/delayed_job_web/application/views/working.erb +13 -0
- metadata +16 -86
- data/VERSION +0 -1
- data/lib/delayed_job_web/application/views/enqueued.haml +0 -10
- data/lib/delayed_job_web/application/views/error.haml +0 -2
- data/lib/delayed_job_web/application/views/failed.haml +0 -14
- data/lib/delayed_job_web/application/views/job.haml +0 -44
- data/lib/delayed_job_web/application/views/layout.haml +0 -23
- data/lib/delayed_job_web/application/views/next_more.haml +0 -6
- data/lib/delayed_job_web/application/views/overview.haml +0 -25
- data/lib/delayed_job_web/application/views/pending.haml +0 -12
- data/lib/delayed_job_web/application/views/stats.haml +0 -20
- data/lib/delayed_job_web/application/views/working.haml +0 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a024d8e2555f5bb896f5cbe5f077eee5422a6db8
         | 
| 4 | 
            +
              data.tar.gz: 4538ff701954c0b3c6cf67520a0363e7c6e3b97c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5811906545e849a206af0911ba0cbf0ab5a5cb67840420e8985758507dcc1dd045d75e492eb079be75e59d5fc1c1551fc28df974f1a9dffb1aaa36f8d36edbde
         | 
| 7 | 
            +
              data.tar.gz: 3207d0809ed97d6607d37d0a2d28848406ad11c0ac8d599890709ba05d2be1179adb19064670d8c0ab38b737a50e6c75e93c3c6b2d6a31dc047de68100721f24
         | 
    
        data/Gemfile
    CHANGED
    
    | @@ -1,14 +1,3 @@ | |
| 1 1 | 
             
            source "https://rubygems.org"
         | 
| 2 | 
            -
              gem "tilt", "1.4.1"
         | 
| 3 | 
            -
              gem "sinatra", '>= 0.9.2'
         | 
| 4 | 
            -
              gem "haml", '>= 3.1.3'
         | 
| 5 | 
            -
              gem 'activerecord', '> 3.0.0'
         | 
| 6 | 
            -
              gem 'delayed_job', '> 2.0.3'
         | 
| 7 | 
            -
              gem 'rdoc'
         | 
| 8 2 |  | 
| 9 | 
            -
             | 
| 10 | 
            -
              gem "shoulda", ">= 0"
         | 
| 11 | 
            -
              gem "bundler", "> 1.0.0"
         | 
| 12 | 
            -
              gem "jeweler"
         | 
| 13 | 
            -
              gem "rack-test", ">= 0"
         | 
| 14 | 
            -
            end
         | 
| 3 | 
            +
            gemspec
         | 
    
        data/README.markdown
    CHANGED
    
    | @@ -11,6 +11,7 @@ Some features: | |
| 11 11 | 
             
            * Queue any single job. or all pending jobs, to run immediately.
         | 
| 12 12 | 
             
            * Remove a failed job, or easily remove all failed jobs.
         | 
| 13 13 | 
             
            * Watch delayed_job operation with live ajax polling.
         | 
| 14 | 
            +
            * Filter delayed_jobs by queue name
         | 
| 14 15 |  | 
| 15 16 | 
             
            Quick Start For Rails 3 and 4 Applications
         | 
| 16 17 | 
             
            ------------------------------------
         | 
| @@ -27,10 +28,11 @@ Install it... | |
| 27 28 | 
             
            bundle
         | 
| 28 29 | 
             
            ```
         | 
| 29 30 |  | 
| 30 | 
            -
            Add  | 
| 31 | 
            +
            Add the following route to your application for accessing the interface,
         | 
| 32 | 
            +
            and retrying failed jobs.
         | 
| 31 33 |  | 
| 32 34 | 
             
            ```ruby
         | 
| 33 | 
            -
             | 
| 35 | 
            +
            match "/delayed_job" => DelayedJobWeb, :anchor => false, via: [:get, :post]
         | 
| 34 36 | 
             
            ```
         | 
| 35 37 |  | 
| 36 38 | 
             
            You probably want to password protect the interface, an easy way is to add something like this your config.ru file
         | 
| @@ -45,6 +47,29 @@ end | |
| 45 47 |  | 
| 46 48 | 
             
            `delayed_job_web` runs as a Sinatra application within the rails application. Visit it at `/delayed_job_web`.
         | 
| 47 49 |  | 
| 50 | 
            +
            ## Serving static assets
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            If you mount the app on another route, you may encounter the CSS not working anymore. To work around this you can leverage a special HTTP header. Install it, activate it and configure it -- see below.
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            ### Apache
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                XSendFile On 
         | 
| 57 | 
            +
                XSendFilePath /path/to/shared/bundle
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            [`XSendFilePath`](https://tn123.org/mod_xsendfile/) white-lists a directory from which static files are allowed to be served. This should be at least the path to where delayed_job_web is installed.
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            Using Rails you'll have to set `config.action_dispatch.x_sendfile_header = "X-Sendfile"`.
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            ### Nginx
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            Nginx uses an equivalent that's called `X-Accel-Redirect`, further instructions can be found [in their wiki](http://wiki.nginx.org/XSendfile).
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            Rails' will need to be configured to `config.action_dispatch.x_sendfile_header = "X-Accel-Redirect"`.
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            ### Lighttpd
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            Lighty is more `X-Sendfile`, like [outlined](http://redmine.lighttpd.net/projects/1/wiki/X-LIGHTTPD-send-file) in their wiki.
         | 
| 72 | 
            +
             | 
| 48 73 | 
             
            The Interface - Yea, a ripoff of resque-web
         | 
| 49 74 | 
             
            ------------------------------------
         | 
| 50 75 |  | 
    
        data/Rakefile
    CHANGED
    
    | @@ -11,20 +11,6 @@ rescue Bundler::BundlerError => e | |
| 11 11 | 
             
            end
         | 
| 12 12 | 
             
            require 'rake'
         | 
| 13 13 |  | 
| 14 | 
            -
            require 'jeweler'
         | 
| 15 | 
            -
            Jeweler::Tasks.new do |gem|
         | 
| 16 | 
            -
              # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
         | 
| 17 | 
            -
              gem.name = "delayed_job_web"
         | 
| 18 | 
            -
              gem.homepage = "http://github.com/ejschmitt/delayed_job_web"
         | 
| 19 | 
            -
              gem.license = "MIT"
         | 
| 20 | 
            -
              gem.summary = "Web interface for delayed_job"
         | 
| 21 | 
            -
              gem.description = "Web interface for delayed_job inspired by resque"
         | 
| 22 | 
            -
              gem.email = "ejschmitt@gmail.com"
         | 
| 23 | 
            -
              gem.authors = ["Erick Schmitt"]
         | 
| 24 | 
            -
              # dependencies defined in Gemfile
         | 
| 25 | 
            -
            end
         | 
| 26 | 
            -
            Jeweler::RubygemsDotOrgTasks.new
         | 
| 27 | 
            -
             | 
| 28 14 | 
             
            require 'rake/testtask'
         | 
| 29 15 | 
             
            Rake::TestTask.new(:test) do |test|
         | 
| 30 16 | 
             
              test.libs << 'lib' << 'test'
         | 
    
        data/delayed_job_web.gemspec
    CHANGED
    
    | @@ -1,15 +1,12 @@ | |
| 1 | 
            -
            # Generated by jeweler
         | 
| 2 | 
            -
            # DO NOT EDIT THIS FILE DIRECTLY
         | 
| 3 | 
            -
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         | 
| 4 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 5 2 |  | 
| 6 3 | 
             
            Gem::Specification.new do |s|
         | 
| 7 4 | 
             
              s.name = "delayed_job_web"
         | 
| 8 | 
            -
              s.version = "1.2. | 
| 5 | 
            +
              s.version = "1.2.4"
         | 
| 9 6 |  | 
| 10 | 
            -
              s.required_rubygems_version =  | 
| 7 | 
            +
              s.required_rubygems_version = "2.0.14"
         | 
| 11 8 | 
             
              s.authors = ["Erick Schmitt"]
         | 
| 12 | 
            -
              s.date = "2014-01- | 
| 9 | 
            +
              s.date = "2014-01-29"
         | 
| 13 10 | 
             
              s.description = "Web interface for delayed_job inspired by resque"
         | 
| 14 11 | 
             
              s.email = "ejschmitt@gmail.com"
         | 
| 15 12 | 
             
              s.executables = ["delayed_job_web"]
         | 
| @@ -23,7 +20,6 @@ Gem::Specification.new do |s| | |
| 23 20 | 
             
                "LICENSE.txt",
         | 
| 24 21 | 
             
                "README.markdown",
         | 
| 25 22 | 
             
                "Rakefile",
         | 
| 26 | 
            -
                "VERSION",
         | 
| 27 23 | 
             
                "bin/delayed_job_web",
         | 
| 28 24 | 
             
                "delayed_job_web.gemspec",
         | 
| 29 25 | 
             
                "lib/delayed_job_web.rb",
         | 
| @@ -34,62 +30,28 @@ Gem::Specification.new do |s| | |
| 34 30 | 
             
                "lib/delayed_job_web/application/public/javascripts/jquery.relatize_date.js",
         | 
| 35 31 | 
             
                "lib/delayed_job_web/application/public/stylesheets/reset.css",
         | 
| 36 32 | 
             
                "lib/delayed_job_web/application/public/stylesheets/style.css",
         | 
| 37 | 
            -
                "lib/delayed_job_web/application/views/enqueued. | 
| 38 | 
            -
                "lib/delayed_job_web/application/views/error. | 
| 39 | 
            -
                "lib/delayed_job_web/application/views/failed. | 
| 40 | 
            -
                "lib/delayed_job_web/application/views/job. | 
| 41 | 
            -
                "lib/delayed_job_web/application/views/layout. | 
| 42 | 
            -
                "lib/delayed_job_web/application/views/next_more. | 
| 43 | 
            -
                "lib/delayed_job_web/application/views/overview. | 
| 44 | 
            -
                "lib/delayed_job_web/application/views/pending. | 
| 45 | 
            -
                "lib/delayed_job_web/application/views/stats. | 
| 46 | 
            -
                "lib/delayed_job_web/application/views/working. | 
| 33 | 
            +
                "lib/delayed_job_web/application/views/enqueued.erb",
         | 
| 34 | 
            +
                "lib/delayed_job_web/application/views/error.erb",
         | 
| 35 | 
            +
                "lib/delayed_job_web/application/views/failed.erb",
         | 
| 36 | 
            +
                "lib/delayed_job_web/application/views/job.erb",
         | 
| 37 | 
            +
                "lib/delayed_job_web/application/views/layout.erb",
         | 
| 38 | 
            +
                "lib/delayed_job_web/application/views/next_more.erb",
         | 
| 39 | 
            +
                "lib/delayed_job_web/application/views/overview.erb",
         | 
| 40 | 
            +
                "lib/delayed_job_web/application/views/pending.erb",
         | 
| 41 | 
            +
                "lib/delayed_job_web/application/views/stats.erb",
         | 
| 42 | 
            +
                "lib/delayed_job_web/application/views/working.erb",
         | 
| 47 43 | 
             
                "test/helper.rb",
         | 
| 48 44 | 
             
                "test/test_delayed_job_web.rb"
         | 
| 49 45 | 
             
              ]
         | 
| 50 46 | 
             
              s.homepage = "http://github.com/ejschmitt/delayed_job_web"
         | 
| 51 47 | 
             
              s.licenses = ["MIT"]
         | 
| 52 48 | 
             
              s.require_paths = ["lib"]
         | 
| 53 | 
            -
              s.rubygems_version = "2.0.6"
         | 
| 54 49 | 
             
              s.summary = "Web interface for delayed_job"
         | 
| 55 50 |  | 
| 56 | 
            -
               | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 | 
            -
                  s.add_runtime_dependency(%q<sinatra>, [">= 0.9.2"])
         | 
| 62 | 
            -
                  s.add_runtime_dependency(%q<haml>, [">= 3.1.3"])
         | 
| 63 | 
            -
                  s.add_runtime_dependency(%q<activerecord>, ["> 3.0.0"])
         | 
| 64 | 
            -
                  s.add_runtime_dependency(%q<delayed_job>, ["> 2.0.3"])
         | 
| 65 | 
            -
                  s.add_runtime_dependency(%q<rdoc>, [">= 0"])
         | 
| 66 | 
            -
                  s.add_development_dependency(%q<shoulda>, [">= 0"])
         | 
| 67 | 
            -
                  s.add_development_dependency(%q<bundler>, ["> 1.0.0"])
         | 
| 68 | 
            -
                  s.add_development_dependency(%q<jeweler>, [">= 0"])
         | 
| 69 | 
            -
                  s.add_development_dependency(%q<rack-test>, [">= 0"])
         | 
| 70 | 
            -
                else
         | 
| 71 | 
            -
                  s.add_dependency(%q<tilt>, ["= 1.4.1"])
         | 
| 72 | 
            -
                  s.add_dependency(%q<sinatra>, [">= 0.9.2"])
         | 
| 73 | 
            -
                  s.add_dependency(%q<haml>, [">= 3.1.3"])
         | 
| 74 | 
            -
                  s.add_dependency(%q<activerecord>, ["> 3.0.0"])
         | 
| 75 | 
            -
                  s.add_dependency(%q<delayed_job>, ["> 2.0.3"])
         | 
| 76 | 
            -
                  s.add_dependency(%q<rdoc>, [">= 0"])
         | 
| 77 | 
            -
                  s.add_dependency(%q<shoulda>, [">= 0"])
         | 
| 78 | 
            -
                  s.add_dependency(%q<bundler>, ["> 1.0.0"])
         | 
| 79 | 
            -
                  s.add_dependency(%q<jeweler>, [">= 0"])
         | 
| 80 | 
            -
                  s.add_dependency(%q<rack-test>, [">= 0"])
         | 
| 81 | 
            -
                end
         | 
| 82 | 
            -
              else
         | 
| 83 | 
            -
                s.add_dependency(%q<tilt>, ["= 1.4.1"])
         | 
| 84 | 
            -
                s.add_dependency(%q<sinatra>, [">= 0.9.2"])
         | 
| 85 | 
            -
                s.add_dependency(%q<haml>, [">= 3.1.3"])
         | 
| 86 | 
            -
                s.add_dependency(%q<activerecord>, ["> 3.0.0"])
         | 
| 87 | 
            -
                s.add_dependency(%q<delayed_job>, ["> 2.0.3"])
         | 
| 88 | 
            -
                s.add_dependency(%q<rdoc>, [">= 0"])
         | 
| 89 | 
            -
                s.add_dependency(%q<shoulda>, [">= 0"])
         | 
| 90 | 
            -
                s.add_dependency(%q<bundler>, ["> 1.0.0"])
         | 
| 91 | 
            -
                s.add_dependency(%q<jeweler>, [">= 0"])
         | 
| 92 | 
            -
                s.add_dependency(%q<rack-test>, [">= 0"])
         | 
| 93 | 
            -
              end
         | 
| 51 | 
            +
              s.add_runtime_dependency(%q<sinatra>, [">= 0.9.2"])
         | 
| 52 | 
            +
              s.add_runtime_dependency(%q<activerecord>, ["> 3.0.0"])
         | 
| 53 | 
            +
              s.add_runtime_dependency(%q<delayed_job>, ["> 2.0.3"])
         | 
| 54 | 
            +
              s.add_development_dependency(%q<shoulda>, [">= 0"])
         | 
| 55 | 
            +
              s.add_development_dependency(%q<rack-test>, [">= 0"])
         | 
| 94 56 | 
             
            end
         | 
| 95 57 |  | 
| @@ -2,14 +2,16 @@ require 'sinatra/base' | |
| 2 2 | 
             
            require 'active_support'
         | 
| 3 3 | 
             
            require 'active_record'
         | 
| 4 4 | 
             
            require 'delayed_job'
         | 
| 5 | 
            -
            require 'haml'
         | 
| 6 5 |  | 
| 7 6 | 
             
            class DelayedJobWeb < Sinatra::Base
         | 
| 8 7 | 
             
              set :root, File.dirname(__FILE__)
         | 
| 9 8 | 
             
              set :static, true
         | 
| 10 9 | 
             
              set :public_folder,  File.expand_path('../public', __FILE__)
         | 
| 11 10 | 
             
              set :views,  File.expand_path('../views', __FILE__)
         | 
| 12 | 
            -
               | 
| 11 | 
            +
              
         | 
| 12 | 
            +
              before do
         | 
| 13 | 
            +
                @queues = (params[:queues] || "").split(",").map{|queue| queue.strip}.uniq.compact
         | 
| 14 | 
            +
              end
         | 
| 13 15 |  | 
| 14 16 | 
             
              def current_page
         | 
| 15 17 | 
             
                url_path request.path_info.sub('/','')
         | 
| @@ -22,11 +24,13 @@ class DelayedJobWeb < Sinatra::Base | |
| 22 24 | 
             
              def per_page
         | 
| 23 25 | 
             
                20
         | 
| 24 26 | 
             
              end
         | 
| 25 | 
            -
             | 
| 27 | 
            +
              
         | 
| 26 28 | 
             
              def url_path(*path_parts)
         | 
| 27 | 
            -
                [ path_prefix, path_parts ].join("/").squeeze('/')
         | 
| 29 | 
            +
                url = [ path_prefix, path_parts ].join("/").squeeze('/')
         | 
| 30 | 
            +
                url += "?queues=#{@queues.join(",")}" unless @queues.empty?
         | 
| 31 | 
            +
                url
         | 
| 28 32 | 
             
              end
         | 
| 29 | 
            -
             | 
| 33 | 
            +
             alias_method :u, :url_path
         | 
| 30 34 |  | 
| 31 35 | 
             
              def path_prefix
         | 
| 32 36 | 
             
                request.env['SCRIPT_NAME']
         | 
| @@ -53,22 +57,22 @@ class DelayedJobWeb < Sinatra::Base | |
| 53 57 |  | 
| 54 58 | 
             
              get '/overview' do
         | 
| 55 59 | 
             
                if delayed_job
         | 
| 56 | 
            -
                   | 
| 60 | 
            +
                  erb :overview
         | 
| 57 61 | 
             
                else
         | 
| 58 62 | 
             
                  @message = "Unable to connected to Delayed::Job database"
         | 
| 59 | 
            -
                   | 
| 63 | 
            +
                  erb :error
         | 
| 60 64 | 
             
                end
         | 
| 61 65 | 
             
              end
         | 
| 62 66 |  | 
| 63 67 | 
             
              get '/stats' do
         | 
| 64 | 
            -
                 | 
| 68 | 
            +
                erb :stats
         | 
| 65 69 | 
             
              end
         | 
| 66 70 |  | 
| 67 71 | 
             
              %w(enqueued working pending failed).each do |page|
         | 
| 68 72 | 
             
                get "/#{page}" do
         | 
| 69 | 
            -
                  @jobs | 
| 70 | 
            -
                  @all_jobs = delayed_jobs(page.to_sym)
         | 
| 71 | 
            -
                   | 
| 73 | 
            +
                  @jobs     = delayed_jobs(page.to_sym, @queues).order('created_at desc, id desc').offset(start).limit(per_page)
         | 
| 74 | 
            +
                  @all_jobs = delayed_jobs(page.to_sym, @queues)
         | 
| 75 | 
            +
                  erb page.to_sym
         | 
| 72 76 | 
             
                end
         | 
| 73 77 | 
             
              end
         | 
| 74 78 |  | 
| @@ -90,23 +94,23 @@ class DelayedJobWeb < Sinatra::Base | |
| 90 94 | 
             
              end
         | 
| 91 95 |  | 
| 92 96 | 
             
              post "/failed/clear" do
         | 
| 93 | 
            -
                delayed_job.destroy_all(delayed_job_sql(:failed))
         | 
| 97 | 
            +
                delayed_job.destroy_all(delayed_job_sql(:failed, @queues))
         | 
| 94 98 | 
             
                redirect u('failed')
         | 
| 95 99 | 
             
              end
         | 
| 96 100 |  | 
| 97 101 | 
             
              post "/requeue/all" do
         | 
| 98 | 
            -
                delayed_jobs(:failed).update_all(:run_at => Time.now, :failed_at => nil)
         | 
| 102 | 
            +
                delayed_jobs(:failed, @queues).update_all(:run_at => Time.now, :failed_at => nil)
         | 
| 99 103 | 
             
                redirect back
         | 
| 100 104 | 
             
              end
         | 
| 101 105 |  | 
| 102 | 
            -
              def delayed_jobs(type)
         | 
| 103 | 
            -
                delayed_job.where(delayed_job_sql(type))
         | 
| 106 | 
            +
              def delayed_jobs(type, queues = [])
         | 
| 107 | 
            +
                delayed_job.where(delayed_job_sql(type, queues))
         | 
| 104 108 | 
             
              end
         | 
| 105 109 |  | 
| 106 | 
            -
              def delayed_job_sql(type)
         | 
| 107 | 
            -
                 | 
| 108 | 
            -
                 | 
| 109 | 
            -
             | 
| 110 | 
            +
              def delayed_job_sql(type, queues = [])
         | 
| 111 | 
            +
                conditions = []
         | 
| 112 | 
            +
                
         | 
| 113 | 
            +
                conditions << case type
         | 
| 110 114 | 
             
                when :working
         | 
| 111 115 | 
             
                  'locked_at is not null'
         | 
| 112 116 | 
             
                when :failed
         | 
| @@ -114,6 +118,10 @@ class DelayedJobWeb < Sinatra::Base | |
| 114 118 | 
             
                when :pending
         | 
| 115 119 | 
             
                  'attempts = 0'
         | 
| 116 120 | 
             
                end
         | 
| 121 | 
            +
                
         | 
| 122 | 
            +
                conditions << "queue IN ('#{queues.join("','")}')" unless queues.empty?
         | 
| 123 | 
            +
                
         | 
| 124 | 
            +
                conditions.compact.join(" AND ")
         | 
| 117 125 | 
             
              end
         | 
| 118 126 |  | 
| 119 127 | 
             
              get "/?" do
         | 
| @@ -122,7 +130,7 @@ class DelayedJobWeb < Sinatra::Base | |
| 122 130 |  | 
| 123 131 | 
             
              def partial(template, local_vars = {})
         | 
| 124 132 | 
             
                @partial = true
         | 
| 125 | 
            -
                 | 
| 133 | 
            +
                erb(template.to_sym, {:layout => false}, local_vars)
         | 
| 126 134 | 
             
              ensure
         | 
| 127 135 | 
             
                @partial = false
         | 
| 128 136 | 
             
              end
         | 
| @@ -141,7 +149,7 @@ class DelayedJobWeb < Sinatra::Base | |
| 141 149 | 
             
                if @polling
         | 
| 142 150 | 
             
                  text = "Last Updated: #{Time.now.strftime("%H:%M:%S")}"
         | 
| 143 151 | 
             
                else
         | 
| 144 | 
            -
                  text = "<a href='#{u(request.path_info)} | 
| 152 | 
            +
                  text = "<a href='#{u(request.path_info + ".poll")}' rel='poll'>Live Poll</a>"
         | 
| 145 153 | 
             
                end
         | 
| 146 154 | 
             
                "<p class='poll'>#{text}</p>"
         | 
| 147 155 | 
             
              end
         | 
| @@ -150,8 +158,8 @@ class DelayedJobWeb < Sinatra::Base | |
| 150 158 | 
             
                content_type "text/html"
         | 
| 151 159 | 
             
                @polling = true
         | 
| 152 160 | 
             
                # show(page.to_sym, false).gsub(/\s{1,}/, ' ')
         | 
| 153 | 
            -
                @jobs = delayed_jobs(page.to_sym)
         | 
| 154 | 
            -
                 | 
| 161 | 
            +
                @jobs = delayed_jobs(page.to_sym, @queues)
         | 
| 162 | 
            +
                erb(page.to_sym, {:layout => false})
         | 
| 155 163 | 
             
              end
         | 
| 156 164 |  | 
| 157 165 | 
             
            end
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            <h1>Enqueued</h1>
         | 
| 2 | 
            +
            <p class="sub">
         | 
| 3 | 
            +
              The list below contains all jobs currently in the delayed_job queue.
         | 
| 4 | 
            +
            </p>
         | 
| 5 | 
            +
            <p class="sub">
         | 
| 6 | 
            +
              <%= "Showing #{start} to #{start + per_page} of #{@all_jobs.count} enqueued jobs." %>
         | 
| 7 | 
            +
            </p>
         | 
| 8 | 
            +
            <ul class="job">
         | 
| 9 | 
            +
              <% @jobs.each do |job| %>
         | 
| 10 | 
            +
                <%= partial :job, {:job => job} %>
         | 
| 11 | 
            +
              <% end %>
         | 
| 12 | 
            +
            </ul>
         | 
| 13 | 
            +
            <%= partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page %>
         | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            <h1>Failed Jobs</h1>
         | 
| 2 | 
            +
            <% if @jobs.any? %>
         | 
| 3 | 
            +
              <form action="<%= u('failed/clear') %>" method="POST">
         | 
| 4 | 
            +
                <input type="submit" value="Clear Failed Jobs"></input>
         | 
| 5 | 
            +
              </form>
         | 
| 6 | 
            +
              <form action="<%= u('requeue/all') %>" method="POST">
         | 
| 7 | 
            +
                <input type="submit" value="Retry Failed Jobs"></input>
         | 
| 8 | 
            +
              </form>
         | 
| 9 | 
            +
            <% end %>
         | 
| 10 | 
            +
            <p class="sub">
         | 
| 11 | 
            +
              The list below contains all jobs that have a last_error message set.
         | 
| 12 | 
            +
            </p>
         | 
| 13 | 
            +
            <p class="sub">
         | 
| 14 | 
            +
              <%= "Showing #{start} to #{start + per_page} of #{@all_jobs.count} failed jobs." %>
         | 
| 15 | 
            +
            </p>
         | 
| 16 | 
            +
            <ul class="failed job">
         | 
| 17 | 
            +
              <% @jobs.each do |job| %>
         | 
| 18 | 
            +
                <%= partial :job, {:job => job} %>
         | 
| 19 | 
            +
              <% end %>
         | 
| 20 | 
            +
            </ul>
         | 
| 21 | 
            +
            <%= partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page %>
         | 
| @@ -0,0 +1,61 @@ | |
| 1 | 
            +
            <li class="job">
         | 
| 2 | 
            +
              <dl>
         | 
| 3 | 
            +
                <dt>ID</dt>
         | 
| 4 | 
            +
                <dd>
         | 
| 5 | 
            +
                  <a name="<%= job.id %>"></a>
         | 
| 6 | 
            +
                  <a href="#<%= job.id %>"><%= job.id %></a>
         | 
| 7 | 
            +
                  <div class="controls">
         | 
| 8 | 
            +
                    <a href="<%= u("requeue/#{job.id}") %>" rel="retry">Retry</a>
         | 
| 9 | 
            +
                    or
         | 
| 10 | 
            +
                    <a href="<%= u("remove/#{job.id}") %>" rel="remove">Remove</a>
         | 
| 11 | 
            +
                    or
         | 
| 12 | 
            +
                    <a href="<%= u("reload/#{job.id}") %>" rel="reload_job">Reload Job</a>
         | 
| 13 | 
            +
                  </div>
         | 
| 14 | 
            +
                </dd>
         | 
| 15 | 
            +
                <dt>Priority</dt>
         | 
| 16 | 
            +
                <dd><%= job.priority %></dd>
         | 
| 17 | 
            +
                <dt>Attempts</dt>
         | 
| 18 | 
            +
                <dd><%= job.attempts %></dd>
         | 
| 19 | 
            +
                <% if job.respond_to?(:queue) && job.queue %>
         | 
| 20 | 
            +
                  <dt>Queue</dt>
         | 
| 21 | 
            +
                  <dd><%= job.queue %></dd>
         | 
| 22 | 
            +
                <% end %>
         | 
| 23 | 
            +
                <dt>Handler</dt>
         | 
| 24 | 
            +
                <dd>
         | 
| 25 | 
            +
                <pre><%= job.handler %></pre>
         | 
| 26 | 
            +
                </dd>
         | 
| 27 | 
            +
                <% if job.last_error %>
         | 
| 28 | 
            +
                  <dt>Last Error</dt>
         | 
| 29 | 
            +
                  <dd>
         | 
| 30 | 
            +
                    <div class="backtrace">
         | 
| 31 | 
            +
                      <pre><%= job.last_error[0..100] + '...' %></pre>
         | 
| 32 | 
            +
                    </div>
         | 
| 33 | 
            +
                    <a class="backtrace" href="#">Toggle full message</a>
         | 
| 34 | 
            +
                    <div class="backtrace full hide">
         | 
| 35 | 
            +
                      <pre><%= job.last_error %></pre>
         | 
| 36 | 
            +
                    </div>
         | 
| 37 | 
            +
                  </dd>
         | 
| 38 | 
            +
                <% end %>
         | 
| 39 | 
            +
                <% if job.run_at %>
         | 
| 40 | 
            +
                  <dt>Run At</dt>
         | 
| 41 | 
            +
                  <dd class="time">
         | 
| 42 | 
            +
                    <%= job.run_at.rfc822 %>
         | 
| 43 | 
            +
                  </dd>
         | 
| 44 | 
            +
                <% end %>
         | 
| 45 | 
            +
                <% if job.locked_at %>
         | 
| 46 | 
            +
                  <dt>Locked At</dt>
         | 
| 47 | 
            +
                  <dd class="time">
         | 
| 48 | 
            +
                    <%= job.locked_at.rfc822 %>
         | 
| 49 | 
            +
                  </dd>
         | 
| 50 | 
            +
                <% end %>
         | 
| 51 | 
            +
                <% if job.locked_by %>
         | 
| 52 | 
            +
                  <dt>Locked By</dt>
         | 
| 53 | 
            +
                  <dd>
         | 
| 54 | 
            +
                    <%= job.locked_by %>
         | 
| 55 | 
            +
                  </dd>
         | 
| 56 | 
            +
                <% end %>
         | 
| 57 | 
            +
                <% if job.failed_at %>
         | 
| 58 | 
            +
                  <dt>Failed At</dt>
         | 
| 59 | 
            +
                <% end %>
         | 
| 60 | 
            +
              </dl>
         | 
| 61 | 
            +
            </li>
         | 
| @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
         | 
| 2 | 
            +
            <html>
         | 
| 3 | 
            +
              <head>
         | 
| 4 | 
            +
                <title>Delayed Job Web</title>
         | 
| 5 | 
            +
                <link rel="stylesheet" type="text/css" href="stylesheets/reset.css" />
         | 
| 6 | 
            +
                <link rel="stylesheet" type="text/css" href="stylesheets/style.css" />
         | 
| 7 | 
            +
              </head>
         | 
| 8 | 
            +
              <body>
         | 
| 9 | 
            +
                <div class="header">
         | 
| 10 | 
            +
                  <ul class="nav">
         | 
| 11 | 
            +
                    <% tabs.each do |tab| %>
         | 
| 12 | 
            +
                      <li class="<%= request.path_info == tab[:path] ? 'current' : '' %>">
         | 
| 13 | 
            +
                        <a class="tab" href="<%= u(tab[:path]) %>">
         | 
| 14 | 
            +
                          <%= tab[:name] %>
         | 
| 15 | 
            +
                        </a>
         | 
| 16 | 
            +
                      </li>
         | 
| 17 | 
            +
                    <% end %>
         | 
| 18 | 
            +
                    <li>
         | 
| 19 | 
            +
                      <form method="get" action="" style="display:inline; width: 100%;">
         | 
| 20 | 
            +
                        <input name="queues" type="text" value="<%= @queues.join(", ") %>" style="width: 300px;" placeholder="Filter jobs by queue name (e.g. queue1, queue2)" />
         | 
| 21 | 
            +
                        <input type="submit" value="Filter" />
         | 
| 22 | 
            +
                      </form>
         | 
| 23 | 
            +
                    </li>
         | 
| 24 | 
            +
                  </ul>
         | 
| 25 | 
            +
                </div>
         | 
| 26 | 
            +
                <div id="main">
         | 
| 27 | 
            +
                  <%= yield %>
         | 
| 28 | 
            +
                </div>
         | 
| 29 | 
            +
                <div id="footer">
         | 
| 30 | 
            +
                  <p>
         | 
| 31 | 
            +
                    Powered by
         | 
| 32 | 
            +
                    <a href="https://github.com/collectiveidea/delayed_job">delayed_job</a>
         | 
| 33 | 
            +
                    &
         | 
| 34 | 
            +
                    <a href="https://github.com/ejschmitt/delayed_job_web">delayed_job_web</a>
         | 
| 35 | 
            +
                  </p>
         | 
| 36 | 
            +
                </div>
         | 
| 37 | 
            +
                <script src="<%= u("javascripts/jquery-1.7.1.min.js") %>" type="text/javascript"></script>
         | 
| 38 | 
            +
                <script src="<%= u("javascripts/jquery.relatize_date.js") %>" type="text/javascript"></script>
         | 
| 39 | 
            +
                <script src="<%= u("javascripts/application.js") %>" type="text/javascript"></script>
         | 
| 40 | 
            +
              </body>
         | 
| 41 | 
            +
            </html>
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            <% if start - per_page >= 0 || start + per_page <= total_size %>
         | 
| 2 | 
            +
            <% divider = @queues.empty? ? "?" : "&" %>
         | 
| 3 | 
            +
              <p class="pagination">
         | 
| 4 | 
            +
                <% if start - per_page >= 0 %>
         | 
| 5 | 
            +
                  <a class="less" href="<%= current_page %><%= divider %>start=<%= start - per_page %>">« less</a>
         | 
| 6 | 
            +
                <% end %>
         | 
| 7 | 
            +
                <% if start + per_page < total_size %>
         | 
| 8 | 
            +
                  <a class="more" href="<%= current_page %><%= divider %>start=<%= start + per_page %>">more »</a>
         | 
| 9 | 
            +
                <% end %>
         | 
| 10 | 
            +
              </p>
         | 
| 11 | 
            +
            <% end %>
         | 
| @@ -0,0 +1,45 @@ | |
| 1 | 
            +
            <h1>
         | 
| 2 | 
            +
              Overview
         | 
| 3 | 
            +
            </h1>
         | 
| 4 | 
            +
            <p class="sub">
         | 
| 5 | 
            +
              The list below shows an overview of the jobs in the delayed_job queue.
         | 
| 6 | 
            +
            </p>
         | 
| 7 | 
            +
            <table class="overview">
         | 
| 8 | 
            +
              <tr>
         | 
| 9 | 
            +
                <th>Status</th>
         | 
| 10 | 
            +
                <th>Count</th>
         | 
| 11 | 
            +
              </tr>
         | 
| 12 | 
            +
              <tr>
         | 
| 13 | 
            +
                <td class="status">
         | 
| 14 | 
            +
                  <a href="<%= u('/enqueued') %>">Enqueued Jobs</a>
         | 
| 15 | 
            +
                </td>
         | 
| 16 | 
            +
                <td>
         | 
| 17 | 
            +
                  <%= delayed_jobs(:enqueued, @queues).count %>
         | 
| 18 | 
            +
                </td>
         | 
| 19 | 
            +
              </tr>
         | 
| 20 | 
            +
              <tr>
         | 
| 21 | 
            +
                <td class="status">
         | 
| 22 | 
            +
                  <a href="<%= u('/working') %>">Working Jobs</a>
         | 
| 23 | 
            +
                </td>
         | 
| 24 | 
            +
                <td>
         | 
| 25 | 
            +
                  <%= delayed_jobs(:working, @queues).count %>
         | 
| 26 | 
            +
                </td>
         | 
| 27 | 
            +
              </tr>
         | 
| 28 | 
            +
              <tr>
         | 
| 29 | 
            +
                <td class="status">
         | 
| 30 | 
            +
                  <a href="<%= u('/pending') %>">Pending Jobs</a>
         | 
| 31 | 
            +
                </td>
         | 
| 32 | 
            +
                <td>
         | 
| 33 | 
            +
                  <%= delayed_jobs(:pending, @queues).count %>
         | 
| 34 | 
            +
                </td>
         | 
| 35 | 
            +
              </tr>
         | 
| 36 | 
            +
              <tr class="<%= delayed_jobs(:failed, @queues).count > 0 ? 'failure' : '' %>">
         | 
| 37 | 
            +
                <td class="status">
         | 
| 38 | 
            +
                  <a href="<%= u('/failed') %>">Failed Jobs</a>
         | 
| 39 | 
            +
                </td>
         | 
| 40 | 
            +
                <td>
         | 
| 41 | 
            +
                  <%= delayed_jobs(:failed, @queues).count %>
         | 
| 42 | 
            +
                </td>
         | 
| 43 | 
            +
              </tr>
         | 
| 44 | 
            +
            </table>
         | 
| 45 | 
            +
            <%= poll %>
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            <h1>Pending</h1>
         | 
| 2 | 
            +
            <% if @jobs.any? %>
         | 
| 3 | 
            +
              <form action="<%= u('requeue/all') %>" method="POST">
         | 
| 4 | 
            +
                <input type="submit" value="Enqueue All Immediately"></input>
         | 
| 5 | 
            +
              </form>
         | 
| 6 | 
            +
            <% end %>
         | 
| 7 | 
            +
            <p class="sub">
         | 
| 8 | 
            +
              The list below contains jobs currently being processed.
         | 
| 9 | 
            +
            </p>
         | 
| 10 | 
            +
            <p class="sub">
         | 
| 11 | 
            +
              <%= "Showing #{start} to #{start + per_page} of #{@all_jobs.count} pending jobs." %>
         | 
| 12 | 
            +
            </p>
         | 
| 13 | 
            +
            <ul class="job">
         | 
| 14 | 
            +
              <% @jobs.each do |job| %>
         | 
| 15 | 
            +
                <%= partial :job, {:job => job} %>
         | 
| 16 | 
            +
              <% end %>
         | 
| 17 | 
            +
            </ul>
         | 
| 18 | 
            +
            <%= partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page %>
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            <h1>Stats</h1>
         | 
| 2 | 
            +
            <table class="stats">
         | 
| 3 | 
            +
              <tr>
         | 
| 4 | 
            +
                <th class="status">
         | 
| 5 | 
            +
                  environment
         | 
| 6 | 
            +
                </th>
         | 
| 7 | 
            +
                <th>
         | 
| 8 | 
            +
                  <%= Sinatra::Application.environment.to_s %>
         | 
| 9 | 
            +
                </th>
         | 
| 10 | 
            +
              </tr>
         | 
| 11 | 
            +
              <tr>
         | 
| 12 | 
            +
                <th class="status">
         | 
| 13 | 
            +
                  failed
         | 
| 14 | 
            +
                </th>
         | 
| 15 | 
            +
                <th>
         | 
| 16 | 
            +
                  <%= delayed_jobs(:failed, @queues).count %>
         | 
| 17 | 
            +
                </th>
         | 
| 18 | 
            +
              </tr>
         | 
| 19 | 
            +
              <tr>
         | 
| 20 | 
            +
                <th class="status">
         | 
| 21 | 
            +
                  pending
         | 
| 22 | 
            +
                </th>
         | 
| 23 | 
            +
                <th>
         | 
| 24 | 
            +
                  <%= delayed_jobs(:pending, @queues).count %>
         | 
| 25 | 
            +
                </th>
         | 
| 26 | 
            +
              </tr>
         | 
| 27 | 
            +
              <tr>
         | 
| 28 | 
            +
                <th class="status">
         | 
| 29 | 
            +
                  working
         | 
| 30 | 
            +
                </th>
         | 
| 31 | 
            +
                <th>
         | 
| 32 | 
            +
                  <%= delayed_jobs(:working, @queues).count %>
         | 
| 33 | 
            +
                </th>
         | 
| 34 | 
            +
              </tr>
         | 
| 35 | 
            +
            </table>
         | 
| 36 | 
            +
            <%= poll %>
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            <h1>Working</h1>
         | 
| 2 | 
            +
            <p class="sub">
         | 
| 3 | 
            +
              The list below contains jobs currently being processed.
         | 
| 4 | 
            +
            </p>
         | 
| 5 | 
            +
            <p class="sub">
         | 
| 6 | 
            +
              <%= "Showing #{start} to #{start + per_page} of #{@all_jobs.count} working jobs." %>
         | 
| 7 | 
            +
            </p>
         | 
| 8 | 
            +
            <ul class="job">
         | 
| 9 | 
            +
              <% @jobs.each do |job| %>
         | 
| 10 | 
            +
                <%= partial :job, {:job => job} %>
         | 
| 11 | 
            +
              <% end %>
         | 
| 12 | 
            +
            </ul>
         | 
| 13 | 
            +
            <%= partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page %>
         | 
    
        metadata
    CHANGED
    
    | @@ -1,29 +1,15 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: delayed_job_web
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Erick Schmitt
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-01- | 
| 11 | 
            +
            date: 2014-01-29 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name: tilt
         | 
| 15 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            -
                requirements:
         | 
| 17 | 
            -
                - - '='
         | 
| 18 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 1.4.1
         | 
| 20 | 
            -
              type: :runtime
         | 
| 21 | 
            -
              prerelease: false
         | 
| 22 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            -
                requirements:
         | 
| 24 | 
            -
                - - '='
         | 
| 25 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 1.4.1
         | 
| 27 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 14 | 
             
              name: sinatra
         | 
| 29 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -38,20 +24,6 @@ dependencies: | |
| 38 24 | 
             
                - - '>='
         | 
| 39 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 26 | 
             
                    version: 0.9.2
         | 
| 41 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name: haml
         | 
| 43 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            -
                requirements:
         | 
| 45 | 
            -
                - - '>='
         | 
| 46 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: 3.1.3
         | 
| 48 | 
            -
              type: :runtime
         | 
| 49 | 
            -
              prerelease: false
         | 
| 50 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            -
                requirements:
         | 
| 52 | 
            -
                - - '>='
         | 
| 53 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: 3.1.3
         | 
| 55 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 28 | 
             
              name: activerecord
         | 
| 57 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -80,20 +52,6 @@ dependencies: | |
| 80 52 | 
             
                - - '>'
         | 
| 81 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 54 | 
             
                    version: 2.0.3
         | 
| 83 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            -
              name: rdoc
         | 
| 85 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            -
                requirements:
         | 
| 87 | 
            -
                - - '>='
         | 
| 88 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            -
                    version: '0'
         | 
| 90 | 
            -
              type: :runtime
         | 
| 91 | 
            -
              prerelease: false
         | 
| 92 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            -
                requirements:
         | 
| 94 | 
            -
                - - '>='
         | 
| 95 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            -
                    version: '0'
         | 
| 97 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 56 | 
             
              name: shoulda
         | 
| 99 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -108,34 +66,6 @@ dependencies: | |
| 108 66 | 
             
                - - '>='
         | 
| 109 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 68 | 
             
                    version: '0'
         | 
| 111 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 112 | 
            -
              name: bundler
         | 
| 113 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 | 
            -
                requirements:
         | 
| 115 | 
            -
                - - '>'
         | 
| 116 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version: 1.0.0
         | 
| 118 | 
            -
              type: :development
         | 
| 119 | 
            -
              prerelease: false
         | 
| 120 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            -
                requirements:
         | 
| 122 | 
            -
                - - '>'
         | 
| 123 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            -
                    version: 1.0.0
         | 
| 125 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 126 | 
            -
              name: jeweler
         | 
| 127 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 | 
            -
                requirements:
         | 
| 129 | 
            -
                - - '>='
         | 
| 130 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            -
                    version: '0'
         | 
| 132 | 
            -
              type: :development
         | 
| 133 | 
            -
              prerelease: false
         | 
| 134 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 | 
            -
                requirements:
         | 
| 136 | 
            -
                - - '>='
         | 
| 137 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 138 | 
            -
                    version: '0'
         | 
| 139 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 140 70 | 
             
              name: rack-test
         | 
| 141 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -164,7 +94,6 @@ files: | |
| 164 94 | 
             
            - LICENSE.txt
         | 
| 165 95 | 
             
            - README.markdown
         | 
| 166 96 | 
             
            - Rakefile
         | 
| 167 | 
            -
            - VERSION
         | 
| 168 97 | 
             
            - bin/delayed_job_web
         | 
| 169 98 | 
             
            - delayed_job_web.gemspec
         | 
| 170 99 | 
             
            - lib/delayed_job_web.rb
         | 
| @@ -175,16 +104,16 @@ files: | |
| 175 104 | 
             
            - lib/delayed_job_web/application/public/javascripts/jquery.relatize_date.js
         | 
| 176 105 | 
             
            - lib/delayed_job_web/application/public/stylesheets/reset.css
         | 
| 177 106 | 
             
            - lib/delayed_job_web/application/public/stylesheets/style.css
         | 
| 178 | 
            -
            - lib/delayed_job_web/application/views/enqueued. | 
| 179 | 
            -
            - lib/delayed_job_web/application/views/error. | 
| 180 | 
            -
            - lib/delayed_job_web/application/views/failed. | 
| 181 | 
            -
            - lib/delayed_job_web/application/views/job. | 
| 182 | 
            -
            - lib/delayed_job_web/application/views/layout. | 
| 183 | 
            -
            - lib/delayed_job_web/application/views/next_more. | 
| 184 | 
            -
            - lib/delayed_job_web/application/views/overview. | 
| 185 | 
            -
            - lib/delayed_job_web/application/views/pending. | 
| 186 | 
            -
            - lib/delayed_job_web/application/views/stats. | 
| 187 | 
            -
            - lib/delayed_job_web/application/views/working. | 
| 107 | 
            +
            - lib/delayed_job_web/application/views/enqueued.erb
         | 
| 108 | 
            +
            - lib/delayed_job_web/application/views/error.erb
         | 
| 109 | 
            +
            - lib/delayed_job_web/application/views/failed.erb
         | 
| 110 | 
            +
            - lib/delayed_job_web/application/views/job.erb
         | 
| 111 | 
            +
            - lib/delayed_job_web/application/views/layout.erb
         | 
| 112 | 
            +
            - lib/delayed_job_web/application/views/next_more.erb
         | 
| 113 | 
            +
            - lib/delayed_job_web/application/views/overview.erb
         | 
| 114 | 
            +
            - lib/delayed_job_web/application/views/pending.erb
         | 
| 115 | 
            +
            - lib/delayed_job_web/application/views/stats.erb
         | 
| 116 | 
            +
            - lib/delayed_job_web/application/views/working.erb
         | 
| 188 117 | 
             
            - test/helper.rb
         | 
| 189 118 | 
             
            - test/test_delayed_job_web.rb
         | 
| 190 119 | 
             
            homepage: http://github.com/ejschmitt/delayed_job_web
         | 
| @@ -202,13 +131,14 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 202 131 | 
             
                  version: '0'
         | 
| 203 132 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 204 133 | 
             
              requirements:
         | 
| 205 | 
            -
              - - ' | 
| 134 | 
            +
              - - '='
         | 
| 206 135 | 
             
                - !ruby/object:Gem::Version
         | 
| 207 | 
            -
                  version:  | 
| 136 | 
            +
                  version: 2.0.14
         | 
| 208 137 | 
             
            requirements: []
         | 
| 209 138 | 
             
            rubyforge_project: 
         | 
| 210 | 
            -
            rubygems_version: 2.0. | 
| 139 | 
            +
            rubygems_version: 2.0.14
         | 
| 211 140 | 
             
            signing_key: 
         | 
| 212 141 | 
             
            specification_version: 4
         | 
| 213 142 | 
             
            summary: Web interface for delayed_job
         | 
| 214 143 | 
             
            test_files: []
         | 
| 144 | 
            +
            has_rdoc: 
         | 
    
        data/VERSION
    DELETED
    
    | @@ -1 +0,0 @@ | |
| 1 | 
            -
            1.2.2
         | 
| @@ -1,10 +0,0 @@ | |
| 1 | 
            -
            %h1
         | 
| 2 | 
            -
              Enqueued
         | 
| 3 | 
            -
            %p.sub
         | 
| 4 | 
            -
              The list below contains all jobs currently in the delayed_job queue.
         | 
| 5 | 
            -
            %p.sub
         | 
| 6 | 
            -
              = "Showing #{start} to #{start + per_page} of #{@all_jobs.count} enqueued jobs."
         | 
| 7 | 
            -
            %ul.job
         | 
| 8 | 
            -
              - @jobs.each do |job|
         | 
| 9 | 
            -
                = partial :job, {:job => job}
         | 
| 10 | 
            -
            = partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page
         | 
| @@ -1,14 +0,0 @@ | |
| 1 | 
            -
            %h1 Failed Jobs
         | 
| 2 | 
            -
            - if @jobs.any?
         | 
| 3 | 
            -
              %form{:method => 'POST', :action => u('failed/clear')}
         | 
| 4 | 
            -
                %input{:type => 'submit', :value => 'Clear Failed Jobs'}
         | 
| 5 | 
            -
              %form{:method => 'POST', :action => u('requeue/all')}
         | 
| 6 | 
            -
                %input{:type => 'submit', :value => 'Retry Failed Jobs'}
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            %p.sub
         | 
| 9 | 
            -
              The list below contains all jobs that have a last_error message set.
         | 
| 10 | 
            -
            %p.sub= "Showing #{start} to #{start + per_page} of #{@all_jobs.count} failed jobs."
         | 
| 11 | 
            -
            %ul.failed.job
         | 
| 12 | 
            -
              - @jobs.each do |job|
         | 
| 13 | 
            -
                = partial :job, {:job => job}
         | 
| 14 | 
            -
            = partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page
         | 
| @@ -1,44 +0,0 @@ | |
| 1 | 
            -
            %li.job
         | 
| 2 | 
            -
              %dl
         | 
| 3 | 
            -
                %dt ID
         | 
| 4 | 
            -
                %dd
         | 
| 5 | 
            -
                  %a{:name => job.id}
         | 
| 6 | 
            -
                  %a{:href => "##{job.id}"}=job.id
         | 
| 7 | 
            -
                  %div.controls
         | 
| 8 | 
            -
                    %a{:rel => 'retry', :href => u("requeue/#{job.id}")}Retry
         | 
| 9 | 
            -
                    or
         | 
| 10 | 
            -
                    %a{:rel => 'remove', :href => u("remove/#{job.id}")}Remove
         | 
| 11 | 
            -
                    or
         | 
| 12 | 
            -
                    %a{:rel => 'reload_job', :href => u("reload/#{job.id}")}Reload Job
         | 
| 13 | 
            -
                %dt Priority
         | 
| 14 | 
            -
                %dd= job.priority
         | 
| 15 | 
            -
                %dt Attempts
         | 
| 16 | 
            -
                %dd= job.attempts
         | 
| 17 | 
            -
                - if job.respond_to?(:queue) && job.queue
         | 
| 18 | 
            -
                  %dt Queue
         | 
| 19 | 
            -
                  %dd= job.queue
         | 
| 20 | 
            -
                %dt Handler
         | 
| 21 | 
            -
                %dd
         | 
| 22 | 
            -
                  %pre&= job.handler
         | 
| 23 | 
            -
                - if job.last_error
         | 
| 24 | 
            -
                  %dt Last Error
         | 
| 25 | 
            -
                  %dd
         | 
| 26 | 
            -
                    %div.backtrace
         | 
| 27 | 
            -
                      %pre&= job.last_error[0..100] + '...'
         | 
| 28 | 
            -
                    %a{:href => '#', :class => 'backtrace'} Toggle full message
         | 
| 29 | 
            -
                    %div.backtrace.full.hide
         | 
| 30 | 
            -
                      %pre&= job.last_error
         | 
| 31 | 
            -
                - if job.run_at
         | 
| 32 | 
            -
                  %dt Run At
         | 
| 33 | 
            -
                  %dd.time= job.run_at.rfc822
         | 
| 34 | 
            -
                - if job.locked_at
         | 
| 35 | 
            -
                  %dt Locked At
         | 
| 36 | 
            -
                  %dd.time= job.locked_at.rfc822
         | 
| 37 | 
            -
                - if job.locked_by
         | 
| 38 | 
            -
                  %dt Locked By
         | 
| 39 | 
            -
                  %dd= job.locked_by
         | 
| 40 | 
            -
                - if job.failed_at
         | 
| 41 | 
            -
                  %dt Failed At
         | 
| 42 | 
            -
                  %dd.time= job.failed_at.rfc822
         | 
| 43 | 
            -
                %dt Created At
         | 
| 44 | 
            -
                %dd.time= job.created_at.rfc822
         | 
| @@ -1,23 +0,0 @@ | |
| 1 | 
            -
            !!!
         | 
| 2 | 
            -
            %html
         | 
| 3 | 
            -
              %head
         | 
| 4 | 
            -
                %title Delayed Job Web
         | 
| 5 | 
            -
                %link(rel="stylesheet" type="text/css" href="#{u 'stylesheets/reset.css'}")
         | 
| 6 | 
            -
                %link(rel="stylesheet" type="text/css" href="#{u 'stylesheets/style.css'}")
         | 
| 7 | 
            -
              %body
         | 
| 8 | 
            -
                %div.header
         | 
| 9 | 
            -
                  %ul.nav
         | 
| 10 | 
            -
                    - tabs.each do |tab|
         | 
| 11 | 
            -
                      %li{:class => request.path_info == tab[:path] ? 'current' : ''}
         | 
| 12 | 
            -
                        %a.tab{:href => u(tab[:path])}= tab[:name]
         | 
| 13 | 
            -
                %div#main
         | 
| 14 | 
            -
                  = yield
         | 
| 15 | 
            -
                %div#footer
         | 
| 16 | 
            -
                  %p
         | 
| 17 | 
            -
                    Powered by
         | 
| 18 | 
            -
                    %a{:href => 'https://github.com/collectiveidea/delayed_job'} delayed_job
         | 
| 19 | 
            -
                    &
         | 
| 20 | 
            -
                    %a{:href => 'https://github.com/ejschmitt/delayed_job_web'} delayed_job_web
         | 
| 21 | 
            -
                %script{:type => "text/javascript", :src  => u("javascripts/jquery-1.7.1.min.js")}
         | 
| 22 | 
            -
                %script{:type => "text/javascript", :src  => u("javascripts/jquery.relatize_date.js")}
         | 
| 23 | 
            -
                %script{:type => "text/javascript", :src  => u("javascripts/application.js")}
         | 
| @@ -1,6 +0,0 @@ | |
| 1 | 
            -
            - if start - per_page >= 0 || start + per_page <= total_size
         | 
| 2 | 
            -
              %p.pagination
         | 
| 3 | 
            -
                - if start - per_page >= 0
         | 
| 4 | 
            -
                  %a{:href => "#{current_page}?start=#{start - per_page}", :class => 'less'} « less
         | 
| 5 | 
            -
                - if start + per_page < total_size
         | 
| 6 | 
            -
                  %a{:href => "#{current_page}?start=#{start + per_page}", :class => 'more'} more »
         | 
| @@ -1,25 +0,0 @@ | |
| 1 | 
            -
            %h1
         | 
| 2 | 
            -
              Overview
         | 
| 3 | 
            -
            %p.sub
         | 
| 4 | 
            -
              The list below shows an overview of the jobs in the delayed_job queue.
         | 
| 5 | 
            -
            %table.overview
         | 
| 6 | 
            -
              %tr
         | 
| 7 | 
            -
                %th Status
         | 
| 8 | 
            -
                %th Count
         | 
| 9 | 
            -
              %tr
         | 
| 10 | 
            -
                %td.status
         | 
| 11 | 
            -
                  %a{:href => u('/enqueued')} Enqueued Jobs
         | 
| 12 | 
            -
                %td= delayed_job.count
         | 
| 13 | 
            -
              %tr
         | 
| 14 | 
            -
                %td.status
         | 
| 15 | 
            -
                  %a{:href => u('/working')} Working Jobs
         | 
| 16 | 
            -
                %td= delayed_jobs(:working).count
         | 
| 17 | 
            -
              %tr
         | 
| 18 | 
            -
                %td.status
         | 
| 19 | 
            -
                  %a{:href => u('/pending')} Pending Jobs
         | 
| 20 | 
            -
                %td= delayed_jobs(:pending).count
         | 
| 21 | 
            -
              %tr{:class => delayed_jobs(:failed).count > 0 ? 'failure' : ''}
         | 
| 22 | 
            -
                %td.status
         | 
| 23 | 
            -
                  %a{:href => u('/failed')} Failed Jobs
         | 
| 24 | 
            -
                %td= delayed_jobs(:failed).count
         | 
| 25 | 
            -
            = poll
         | 
| @@ -1,12 +0,0 @@ | |
| 1 | 
            -
            %h1
         | 
| 2 | 
            -
              Pending
         | 
| 3 | 
            -
            - if @jobs.any?
         | 
| 4 | 
            -
              %form{:method => 'POST', :action => u('requeue/all')}
         | 
| 5 | 
            -
                %input{:type => 'submit', :value => 'Enqueue All Immediately'}
         | 
| 6 | 
            -
            %p.sub
         | 
| 7 | 
            -
              The list below contains jobs currently being processed.
         | 
| 8 | 
            -
            %p.sub= "Showing #{start} to #{start + per_page} of #{@all_jobs.count} pending jobs."
         | 
| 9 | 
            -
            %ul.job
         | 
| 10 | 
            -
              - @jobs.each do |job|
         | 
| 11 | 
            -
                = partial :job, {:job => job}
         | 
| 12 | 
            -
            = partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page
         | 
| @@ -1,20 +0,0 @@ | |
| 1 | 
            -
            %h1
         | 
| 2 | 
            -
              Stats
         | 
| 3 | 
            -
            %table.stats
         | 
| 4 | 
            -
              %tr
         | 
| 5 | 
            -
                %th.status
         | 
| 6 | 
            -
                  environment
         | 
| 7 | 
            -
                %th= Sinatra::Application.environment.to_s
         | 
| 8 | 
            -
              %tr
         | 
| 9 | 
            -
                %th.status
         | 
| 10 | 
            -
                  failed
         | 
| 11 | 
            -
                %th= delayed_jobs(:failed).count
         | 
| 12 | 
            -
              %tr
         | 
| 13 | 
            -
                %th.status
         | 
| 14 | 
            -
                  pending
         | 
| 15 | 
            -
                %th= delayed_jobs(:pending).count
         | 
| 16 | 
            -
              %tr
         | 
| 17 | 
            -
                %th.status
         | 
| 18 | 
            -
                  working
         | 
| 19 | 
            -
                %th= delayed_jobs(:working).count
         | 
| 20 | 
            -
            = poll
         | 
| @@ -1,9 +0,0 @@ | |
| 1 | 
            -
            %h1
         | 
| 2 | 
            -
              Working
         | 
| 3 | 
            -
            %p.sub
         | 
| 4 | 
            -
              The list below contains jobs currently being processed.
         | 
| 5 | 
            -
            %p.sub= "Showing #{start} to #{start + per_page} of #{@all_jobs.count} working jobs."
         | 
| 6 | 
            -
            %ul.job
         | 
| 7 | 
            -
              - @jobs.each do |job|
         | 
| 8 | 
            -
                = partial :job, {:job => job}
         | 
| 9 | 
            -
            = partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page
         |