Module: Pushpop
- Defined in:
- lib/pushpop.rb,
lib/pushpop/cli.rb,
lib/pushpop/job.rb,
lib/pushpop/web.rb,
lib/pushpop/step.rb,
lib/pushpop/version.rb
Defined Under Namespace
Classes: CLI, Job, Step, Web
Constant Summary
collapse
- VERSION =
'0.4.0'
- @@jobs =
[]
- @@logger =
lambda {
logger = Logger.new($stdout)
if ENV['DEBUG']
logger.level = Logger::DEBUG
elsif ENV['RACK_ENV'] == 'test'
logger.level = Logger::FATAL
else
logger.level = Logger::INFO
end
logger
}.call
Class Method Summary
collapse
Class Method Details
.add_job(name = nil, &block) ⇒ Object
60
61
62
63
|
# File 'lib/pushpop.rb', line 60
def add_job(name=nil, &block)
self.jobs.push(Job.new(name, &block))
self.jobs.last
end
|
.jobs ⇒ Object
30
31
32
|
# File 'lib/pushpop.rb', line 30
def jobs
@@jobs
end
|
.load_plugin(name) ⇒ Object
96
97
98
|
# File 'lib/pushpop.rb', line 96
def load_plugin(name)
load "#{File.expand_path("../plugins/#{name}", __FILE__)}.rb"
end
|
.logger ⇒ Object
26
27
28
|
# File 'lib/pushpop.rb', line 26
def logger
@@logger
end
|
.random_name ⇒ Object
56
57
58
|
# File 'lib/pushpop.rb', line 56
def random_name
(0...8).map { (65 + rand(26)).chr }.join
end
|
.require_file(file = nil) ⇒ Object
Also known as:
load_jobs
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'lib/pushpop.rb', line 79
def require_file(file = nil)
if file
if File.directory?(file)
Dir.glob("#{file}/**/*.rb").each { |file|
load "#{Dir.pwd}/#{file}"
}
else
load file
end
else
Dir.glob("#{Dir.pwd}/jobs/**/*.rb").each { |file|
load file
}
end
end
|
.run ⇒ Object
65
66
67
|
# File 'lib/pushpop.rb', line 65
def run
self.jobs.map &:run
end
|
.schedule ⇒ Object
69
70
71
|
# File 'lib/pushpop.rb', line 69
def schedule
self.jobs.map &:schedule
end
|
.start_clock ⇒ Object
73
74
75
76
77
|
# File 'lib/pushpop.rb', line 73
def start_clock
Thread.new do
Clockwork.manager.run
end
end
|
.start_webserver ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/pushpop.rb', line 38
def start_webserver
if web.routes.length > 0
Thread.new do
if ENV['PORT']
@web.app.run! :port => ENV['PORT']
else
@web.app.run!
end
end
else
false
end
end
|
.web ⇒ Object
34
35
36
|
# File 'lib/pushpop.rb', line 34
def web
@web ||= Web.new
end
|