Module: Wunderbar
- Defined in:
- lib/wunderbar/server.rb,
lib/wunderbar/rack.rb,
lib/wunderbar/rails.rb,
lib/wunderbar/logger.rb,
lib/wunderbar/builder.rb,
lib/wunderbar/sinatra.rb,
lib/wunderbar/version.rb,
lib/wunderbar/cssproxy.rb,
lib/wunderbar/cgi-methods.rb,
lib/wunderbar/environment.rb,
lib/wunderbar/job-control.rb,
lib/wunderbar/installation.rb
Overview
run command/block as a background daemon
Defined Under Namespace
Modules: CGI, Options, Rails, SinatraHelpers, Template, VERSION
Classes: BuilderBase, CssProxy, JsonBuilder, RackApp, Scope, SpacedMarkup, TextBuilder, XmlMarkup
Constant Summary
collapse
- CALLERS_TO_IGNORE =
[
%r{/(wunderbar|webrick)/},
%r{<internal:},
%r{/gems/.*/lib/(builder|rack|sinatra|tilt)/}
]
- @@unsafe =
false
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.data ⇒ Object
Extract data from the script (after __END__)
3
4
5
6
7
8
9
10
11
12
13
|
# File 'lib/wunderbar/installation.rb', line 3
def self.data
data = DATA.read
data.scan(/^\s*([A-Z]\w*)\s*=\s*(['"]).*\2$/).each do |name, q|
override = ARGV.find {|arg| arg =~ /--#{name}=(.*)/i}
data[/^\s*#{name}\s*=\s*(.*)/,1] = $1.inspect if override
end
data
end
|
.debug(*args, &block) ⇒ Object
41
42
43
|
# File 'lib/wunderbar/logger.rb', line 41
def self.debug(*args, &block)
logger.debug *args, &block
end
|
.error(*args, &block) ⇒ Object
53
54
55
|
# File 'lib/wunderbar/logger.rb', line 53
def self.error(*args, &block)
logger.error *args, &block
end
|
.fatal(*args, &block) ⇒ Object
57
58
59
|
# File 'lib/wunderbar/logger.rb', line 57
def self.fatal(*args, &block)
logger.fatal *args, &block
end
|
.html(*args, &block) ⇒ Object
149
150
151
|
# File 'lib/wunderbar/cgi-methods.rb', line 149
def self.html(*args, &block)
@queue << [:html, args, block]
end
|
.info(*args, &block) ⇒ Object
45
46
47
|
# File 'lib/wunderbar/logger.rb', line 45
def self.info(*args, &block)
logger.info *args, &block
end
|
.json(*args, &block) ⇒ Object
157
158
159
|
# File 'lib/wunderbar/cgi-methods.rb', line 157
def self.json(*args, &block)
@queue << [:json, args, block]
end
|
.log_level ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/wunderbar/logger.rb', line 32
def self.log_level
return 'debug' if logger.level == Logger::DEBUG
return 'info' if logger.level == Logger::INFO
return 'warn' if logger.level == Logger::WARN
return 'error' if logger.level == Logger::ERROR
return 'fatal' if logger.level == Logger::FATAL
end
|
.log_level=(level) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/wunderbar/logger.rb', line 18
def self.log_level=(level)
return unless level
case level.to_s.downcase
when 'debug'; logger.level = Logger::DEBUG
when 'info'; logger.level = Logger::INFO
when 'warn'; logger.level = Logger::WARN
when 'error'; logger.level = Logger::ERROR
when 'fatal'; logger.level = Logger::FATAL
else
warn "Invalid log_level specified: #{level}"
end
end
|
.logger ⇒ Object
4
5
6
7
8
9
10
11
12
|
# File 'lib/wunderbar/logger.rb', line 4
def self.logger
return @logger if @logger
@logger = Logger.new($stderr)
@logger.level = Logger::WARN
@logger.formatter = proc { |severity, datetime, progname, msg|
"_#{severity} #{msg}\n"
}
@logger
end
|
.logger=(new_logger) ⇒ Object
14
15
16
|
# File 'lib/wunderbar/logger.rb', line 14
def self.logger= new_logger
@logger = new_logger
end
|
.queue ⇒ Object
165
166
167
|
# File 'lib/wunderbar/cgi-methods.rb', line 165
def self.queue
@queue
end
|
.safe? ⇒ Boolean
14
15
16
|
# File 'lib/wunderbar/environment.rb', line 14
def self.safe?
not @@unsafe
end
|
.text(*args, &block) ⇒ Object
161
162
163
|
# File 'lib/wunderbar/cgi-methods.rb', line 161
def self.text(*args, &block)
@queue << [:text, args, block]
end
|
.unsafe!(mode = true) ⇒ Object
10
11
12
|
# File 'lib/wunderbar/environment.rb', line 10
def self.unsafe!(mode=true)
@@unsafe=mode
end
|
.warn(*args, &block) ⇒ Object
49
50
51
|
# File 'lib/wunderbar/logger.rb', line 49
def self.warn(*args, &block)
logger.warn *args, &block
end
|
.xhtml(*args, &block) ⇒ Object
153
154
155
|
# File 'lib/wunderbar/cgi-methods.rb', line 153
def self.xhtml(*args, &block)
@queue << [:xhtml, args, block]
end
|
Instance Method Details
#submit(cmd = nil) ⇒ Object
3
4
5
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
|
# File 'lib/wunderbar/job-control.rb', line 3
def submit(cmd=nil)
fork do
Process.setsid
fork and exit
Dir.chdir '/'
File.umask 0000
STDIN.reopen '/dev/null'
STDOUT.reopen '/dev/null', 'a'
STDERR.reopen STDOUT
require 'cgi'
ENV.delete_if {|key,value| key =~ /^HTTP_/}
CGI::QueryExtension.public_instance_methods.each do |method|
ENV.delete method.to_s.upcase
end
ENV['USER'] ||= $USER
ENV['HOME'] ||= $HOME
system cmd if cmd
yield if block_given?
end
end
|