mirror of
https://github.com/plashchynski/crono.git
synced 2026-03-24 02:11:39 +01:00
Use Rails plugin generator and adapt
This commit is contained in:
@@ -2,8 +2,10 @@
|
||||
module Crono
|
||||
end
|
||||
|
||||
require 'rails'
|
||||
require 'active_support/all'
|
||||
require 'crono/version'
|
||||
require 'crono/engine'
|
||||
require 'crono/logging'
|
||||
require 'crono/period'
|
||||
require 'crono/time_of_day'
|
||||
@@ -15,5 +17,3 @@ require 'crono/performer_proxy'
|
||||
require 'crono/cronotab'
|
||||
require 'crono/orm/active_record/crono_job'
|
||||
require 'crono/railtie' if defined?(Rails)
|
||||
|
||||
Crono.autoload :Web, 'crono/web'
|
||||
|
||||
9
lib/crono/engine.rb
Normal file
9
lib/crono/engine.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
module Crono
|
||||
class Engine < ::Rails::Engine
|
||||
isolate_namespace Crono
|
||||
|
||||
initializer 'crono.assets.precompile' do |app|
|
||||
app.config.assets.precompile += %w( crono/application.css crono/materialize.min.css )
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -76,7 +76,7 @@ module Crono
|
||||
end
|
||||
|
||||
def perform_job
|
||||
performer.new.perform *JSON.parse(job_args)
|
||||
performer.new.perform JSON.parse(job_args)
|
||||
rescue StandardError => e
|
||||
handle_job_fail(e)
|
||||
else
|
||||
|
||||
@@ -3,6 +3,7 @@ require 'active_record'
|
||||
module Crono
|
||||
# Crono::CronoJob is a ActiveRecord model to store job state
|
||||
class CronoJob < ActiveRecord::Base
|
||||
self.table_name = 'crono_jobs'
|
||||
validates :job_id, presence: true, uniqueness: true
|
||||
|
||||
def self.outdated
|
||||
|
||||
@@ -7,8 +7,8 @@ module Crono
|
||||
@job_args = job_args
|
||||
end
|
||||
|
||||
def every(period, *args)
|
||||
@job = Job.new(@performer, Period.new(period, *args), @job_args, @options)
|
||||
def every(period, **options)
|
||||
@job = Job.new(@performer, Period.new(period, **options), @job_args, @options)
|
||||
@scheduler.add_job(@job)
|
||||
self
|
||||
end
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
require 'haml'
|
||||
require 'sinatra/base'
|
||||
require 'crono'
|
||||
|
||||
module Crono
|
||||
# Web is a Web UI Sinatra app
|
||||
class Web < Sinatra::Base
|
||||
set :root, File.expand_path(File.dirname(__FILE__) + '/../../web')
|
||||
set :public_folder, proc { "#{root}/assets" }
|
||||
set :views, proc { "#{root}/views" }
|
||||
|
||||
get '/' do
|
||||
@jobs = Crono::CronoJob.all
|
||||
haml :dashboard, format: :html5
|
||||
end
|
||||
|
||||
get '/job/:id' do
|
||||
@job = Crono::CronoJob.find(params[:id])
|
||||
haml :job
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user