diff --git a/.bundle/config b/.bundle/config deleted file mode 100644 index 2fbf0ff..0000000 --- a/.bundle/config +++ /dev/null @@ -1 +0,0 @@ ---- {} diff --git a/.gitignore b/.gitignore index c6000ef..fa4d205 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ -pkg -vendor +/pkg +/vendor +/Gemfile.lock +/.bundle diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e66af42 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +language: ruby +cache: bundler +rvm: + - 1.9.3 + - jruby + - 2.0.0 + - 2.1 + - 2.2 + - ruby-head +gemfile: + - gemfiles/Gemfile.actionpack-3.2.x + - gemfiles/Gemfile.actionpack-4.0.x + - gemfiles/Gemfile.actionpack-4.1.x + - gemfiles/Gemfile.actionpack-4.2.x + - Gemfile diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index ce0272c..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,44 +0,0 @@ -PATH - remote: . - specs: - scheduler_daemon (1.1.4) - activesupport - chronic (>= 0.2.0) - daemons (>= 1.0.10) - eventmachine (>= 0.12.8) - rufus-scheduler (~> 2.0.24) - -GEM - remote: http://rubygems.org/ - specs: - activesupport (3.2.17) - i18n (~> 0.6, >= 0.6.4) - multi_json (~> 1.0) - atomic (1.1.14) - chronic (0.10.2) - daemons (1.1.9) - diff-lcs (1.2.5) - eventmachine (1.0.3) - i18n (0.6.9) - multi_json (1.8.4) - rspec (2.13.0) - rspec-core (~> 2.13.0) - rspec-expectations (~> 2.13.0) - rspec-mocks (~> 2.13.0) - rspec-core (2.13.1) - rspec-expectations (2.13.0) - diff-lcs (>= 1.1.3, < 2.0) - rspec-mocks (2.13.1) - rufus-scheduler (2.0.24) - tzinfo (>= 0.3.22) - thread_safe (0.1.3) - atomic - tzinfo (1.1.0) - thread_safe (~> 0.1) - -PLATFORMS - ruby - -DEPENDENCIES - rspec (~> 2.13.0) - scheduler_daemon! diff --git a/README.markdown b/README.markdown index 60535bf..4e5cee3 100644 --- a/README.markdown +++ b/README.markdown @@ -1,10 +1,12 @@ Scheduler Daemon ================ +[![Build Status](https://travis-ci.org/ssoroka/scheduler_daemon.svg?branch=master)](https://travis-ci.org/ssoroka/scheduler_daemon) + Rails 3+ compatible scheduler daemon (see branches for older versions). -Replaces cron/rake pattern of periodically running rake tasks -to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, +Replaces cron/rake pattern of periodically running rake tasks +to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only loads the environment once, no matter how many tasks run. What's so great about it? Well, I'm glad you asked! @@ -29,7 +31,7 @@ As a gem, the old-fashioned way: As a gem with bundler, add to your ./Gemfile: gem 'scheduler_daemon' - + I pretty much assume you chose this option below and prefix most commands with "bundle exec" As a plugin (deprecated): (might be awkward to call the binary to start up the daemon...) @@ -54,9 +56,9 @@ generate a new scheduled task: rails generate scheduler_task MyTaskName If you have problems with that, the template for new tasks is in the gem under: - + lib/scheduler_daemon/rails/generators/scheduler_task/templates/scheduled_tasks/example_task.rb - + you can always copy it and make modifications, or see "Manually create tasks" below. Tasks support their own special DSL; commands are: @@ -95,7 +97,7 @@ Here's an example task file. class CleanUpTask < Scheduler::SchedulerTask every '2m' - + def run do_something log("I've done things") diff --git a/Rakefile b/Rakefile index b01dcae..8754e40 100644 --- a/Rakefile +++ b/Rakefile @@ -1,73 +1,6 @@ -require 'rubygems' -require 'rake' +require "bundler/gem_tasks" +require 'rspec/core/rake_task' -begin - require 'jeweler' - Jeweler::Tasks.new do |gem| - gem.name = "scheduler_daemon" - gem.summary = %Q{Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks - to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, - and only loads the environment once, no matter how many tasks run. +RSpec::Core::RakeTask.new(:spec) - What's so great about it? Well, I'm glad you asked! - - - Only loads your Rails environment once on daemon start, not every time a task is run - - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an - administrator to update crontab - - It doesn't use rake or cron! - - Gets you up and running with your own daemon in under 2 minutes - } - gem.version = File.read('VERSION').chomp - gem.description = 'a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks, only loading the environment ONCE.' - gem.email = "ssoroka78@gmail.com" - gem.homepage = "http://github.com/ssoroka/scheduler_daemon" - gem.authors = ["Steven Soroka"] - gem.add_dependency('activesupport') - gem.add_dependency('eventmachine', '>= 0.12.8') - gem.add_dependency('daemons', '>= 1.0.10') - gem.add_dependency('rufus-scheduler', '~> 2.0.24') - gem.add_dependency('chronic', '>= 0.2.0') - gem.add_development_dependency('rspec', '~> 2.13.0') - - gem.executables = ['scheduler_daemon'] - - everything_from_dirs = %w(bin lib spec) - gem.files = everything_from_dirs.map{|d| Dir["#{d}/**/*"] }.flatten - gem.files += Dir['*'] - (everything_from_dirs + %w(pkg vendor)) - # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings - end - -rescue LoadError - puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler" -end - -# require 'spec/rake/spectask' -# Spec::Rake::SpecTask.new(:spec) do |spec| -# spec.libs << 'lib' << 'spec' -# spec.spec_files = FileList['spec/**/*_spec.rb'] -# end -# -# Spec::Rake::SpecTask.new(:rcov) do |spec| -# spec.libs << 'lib' << 'spec' -# spec.pattern = 'spec/**/*_spec.rb' -# spec.rcov = true -# end -# -# -# task :default => :spec -# -# require 'rake/rdoctask' -# Rake::RDocTask.new do |rdoc| -# if File.exist?('VERSION.yml') -# config = YAML.load(File.read('VERSION.yml')) -# version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}" -# else -# version = "" -# end -# -# rdoc.rdoc_dir = 'rdoc' -# rdoc.title = "scheduler_daemon #{version}" -# rdoc.rdoc_files.include('README*') -# rdoc.rdoc_files.include('lib/**/*.rb') -# end -# +task :default => :spec diff --git a/VERSION b/VERSION deleted file mode 100644 index 1741ca9..0000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.1.5 \ No newline at end of file diff --git a/gemfiles/Gemfile.actionpack-3.2.x b/gemfiles/Gemfile.actionpack-3.2.x new file mode 100644 index 0000000..e298887 --- /dev/null +++ b/gemfiles/Gemfile.actionpack-3.2.x @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gemspec path: '../' +gem 'activesupport', '~> 3.2.0' diff --git a/gemfiles/Gemfile.actionpack-4.0.x b/gemfiles/Gemfile.actionpack-4.0.x new file mode 100644 index 0000000..ae87781 --- /dev/null +++ b/gemfiles/Gemfile.actionpack-4.0.x @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gemspec path: '../' +gem 'activesupport', '~> 4.0.0' diff --git a/gemfiles/Gemfile.actionpack-4.1.x b/gemfiles/Gemfile.actionpack-4.1.x new file mode 100644 index 0000000..480d267 --- /dev/null +++ b/gemfiles/Gemfile.actionpack-4.1.x @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gemspec path: '../' +gem 'activesupport', '~> 4.1.0' diff --git a/gemfiles/Gemfile.actionpack-4.2.x b/gemfiles/Gemfile.actionpack-4.2.x new file mode 100644 index 0000000..487e221 --- /dev/null +++ b/gemfiles/Gemfile.actionpack-4.2.x @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gemspec path: '../' +gem 'activesupport', '~> 4.2.0' diff --git a/scheduler_daemon.gemspec b/scheduler_daemon.gemspec index 1b6164c..8bc9a71 100644 --- a/scheduler_daemon.gemspec +++ b/scheduler_daemon.gemspec @@ -1,79 +1,34 @@ -# Generated by jeweler -# DO NOT EDIT THIS FILE DIRECTLY -# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec' -# -*- encoding: utf-8 -*- - Gem::Specification.new do |s| s.name = "scheduler_daemon" s.version = "1.1.5" + s.description = "a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks, only loading the environment ONCE." + s.summary = "Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only loads the environment once, no matter how many tasks run. What's so great about it? Well, I'm glad you asked! - Only loads your Rails environment once on daemon start, not every time a task is run - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an administrator to update crontab - It doesn't use rake or cron! - Gets you up and running with your own daemon in under 2 minutes" + s.homepage = "http://github.com/ssoroka/scheduler_daemon" - s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Steven Soroka"] - s.date = "2014-02-25" - s.description = "a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks, only loading the environment ONCE." s.email = "ssoroka78@gmail.com" - s.executables = ["scheduler_daemon"] - s.extra_rdoc_files = [ - "README.markdown" - ] - s.files = [ - "Gemfile", - "Gemfile.lock", - "MIT-LICENSE", - "README.markdown", - "Rakefile", - "VERSION", - "bin/scheduler_daemon", - "lib/loader/scheduler_loader.rb", - "lib/scheduler_daemon.rb", - "lib/scheduler_daemon/base.rb", - "lib/scheduler_daemon/command_line_args_to_hash.rb", - "lib/scheduler_daemon/exception_handler.rb", - "lib/scheduler_daemon/rails/generators/scheduler/USAGE", - "lib/scheduler_daemon/rails/generators/scheduler/scheduler_generator.rb", - "lib/scheduler_daemon/rails/generators/scheduler/templates/README", - "lib/scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tasks/session_cleaner_task.rb", - "lib/scheduler_daemon/rails/generators/scheduler_task/scheduler_task_generator.rb", - "lib/scheduler_daemon/rails/generators/scheduler_task/templates/README", - "lib/scheduler_daemon/rails/generators/scheduler_task/templates/scheduled_tasks/example_task.rb", - "lib/scheduler_daemon/rails/railtie.rb", - "lib/scheduler_daemon/scheduler_task.rb", - "scheduler_daemon.gemspec", - "spec/command_line_args_to_hash_spec.rb", - "spec/scheduled_tasks/session_cleaner_task_spec.rb", - "spec/scheduler_spec.rb", - "spec/spec_helper.rb" - ] - s.homepage = "http://github.com/ssoroka/scheduler_daemon" - s.require_paths = ["lib"] - s.rubygems_version = "1.8.23" - s.summary = "Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only loads the environment once, no matter how many tasks run. What's so great about it? Well, I'm glad you asked! - Only loads your Rails environment once on daemon start, not every time a task is run - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an administrator to update crontab - It doesn't use rake or cron! - Gets you up and running with your own daemon in under 2 minutes" - if s.respond_to? :specification_version then - s.specification_version = 3 + s.date = Time.now.strftime("%Y-%m-%d") + s.files = `git ls-files -z`.split("\x0") + s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) } + s.require_paths = ["lib"] - if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_runtime_dependency(%q, [">= 0"]) - s.add_runtime_dependency(%q, [">= 0.12.8"]) - s.add_runtime_dependency(%q, [">= 1.0.10"]) - s.add_runtime_dependency(%q, ["~> 2.0.24"]) - s.add_runtime_dependency(%q, [">= 0.2.0"]) - s.add_development_dependency(%q, ["~> 2.13.0"]) - else - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0.12.8"]) - s.add_dependency(%q, [">= 1.0.10"]) - s.add_dependency(%q, ["~> 2.0.24"]) - s.add_dependency(%q, [">= 0.2.0"]) - s.add_dependency(%q, ["~> 2.13.0"]) - end + if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') + s.add_dependency("activesupport", ">= 0") + s.add_dependency("eventmachine", ">= 0.12.8") + s.add_dependency("daemons", ">= 1.0.10") + s.add_dependency("rufus-scheduler", "~> 2.0.24") + s.add_dependency("chronic", ">= 0.2.0") + s.add_development_dependency("rspec", "~> 2.13.0") + s.add_development_dependency("rake") else - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0.12.8"]) - s.add_dependency(%q, [">= 1.0.10"]) - s.add_dependency(%q, ["~> 2.0.24"]) - s.add_dependency(%q, [">= 0.2.0"]) - s.add_dependency(%q, ["~> 2.13.0"]) + s.add_dependency("activesupport", [">= 0"]) + s.add_dependency("eventmachine", [">= 0.12.8"]) + s.add_dependency("daemons", [">= 1.0.10"]) + s.add_dependency("rufus-scheduler", ["~> 2.0.24"]) + s.add_dependency("chronic", [">= 0.2.0"]) + s.add_dependency("rspec", ["~> 2.13.0"]) + s.add_dependency("rake", [">= 0"]) end end