Class: Twroute::Tasks

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/twroute/tasks.rb

Instance Method Summary collapse

Constructor Details

#initializeTasks

Returns a new instance of Tasks.



6
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
50
51
52
53
54
55
56
57
58
# File 'lib/twroute/tasks.rb', line 6

def initialize
  namespace :twroute do
    task :load_env do
      require 'twroute'
      require 'twroute/application'
    end
    
    desc "create database"
    task :create_database => :load_env do
      require 'sqlite3'      
      db = SQLite3::Database.new(Twroute::Application.config.database.database)
      db.close
    end

    desc "Create delayed_job table"
    task :create_table => :load_env do
      require 'twroute/requester/delayed/create_delayed_jobs'
      CreateDelayedJobs.migrate(:up)    
    end
      
    desc "create required directories"
    task :create_dirs do
      require 'fileutils'
      ['log', 'db'].each do |dir|
        FileUtils.mkdir_p(dir) if !File.exists?(dir)
      end
    end
    
    desc "initialize twroute app : creates database : creates table : creates directories"
    task :init => [:create_dirs, :create_database, :create_table] do

    end
    
    desc "Delete delayed_job table"
    task :drop_table => :load_env do
      require 'twroute/requester/delayed/create_delayed_jobs'
      CreateDelayedJobs.migrate(:down)    
    end    
    
    desc "Clear the delayed_job queue."
    task :clear => :load_env do
      ActiveRecord::Base.logger = Logger.new(File.open('log/delayed.log', 'a'))    
      ::Delayed::Job.delete_all
    end
    
    desc "Start a delayed_job worker."
    task :work => :load_env do
      ActiveRecord::Base.logger = Logger.new(File.open('log/delayed.log', 'a'))        
      ::Delayed::Worker.new(:min_priority => ENV['MIN_PRIORITY'],
                            :max_priority => ENV['MAX_PRIORITY']).start
    end
  end
end