ramaze 2012.04.14 → 2012.12.08b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gems +28 -35
- data/.gitignore +4 -0
- data/.travis.yml +3 -3
- data/Gemfile +3 -0
- data/README.md +1 -5
- data/Rakefile +9 -20
- data/examples/app/blog/app.rb +5 -14
- data/examples/app/todolist/start.rb +1 -5
- data/guide/AUTHORS +8 -3
- data/guide/CHANGELOG +587 -0
- data/guide/general/cache.md +1 -0
- data/guide/general/configuration.md +2 -1
- data/guide/general/contributing.md +1 -0
- data/guide/general/controllers.md +105 -10
- data/guide/general/helpers.md +6 -7
- data/guide/general/installation.md +2 -1
- data/guide/general/logging.md +1 -4
- data/guide/general/middlewares.md +15 -23
- data/guide/general/models.md +1 -0
- data/guide/general/principles.md +1 -0
- data/guide/general/ramaze_command.md +9 -54
- data/guide/general/routes.md +1 -0
- data/guide/general/sessions.md +3 -2
- data/guide/general/special_thanks.md +1 -0
- data/guide/general/testing.md +1 -0
- data/guide/general/views.md +35 -22
- data/lib/proto/Gemfile +4 -0
- data/lib/proto/README.md +35 -0
- data/lib/proto/Rakefile +1 -0
- data/lib/proto/app.rb +2 -6
- data/lib/proto/spec/helper.rb +39 -0
- data/lib/proto/task/ramaze.rake +57 -0
- data/lib/ramaze.rb +12 -39
- data/lib/ramaze/bin/create.rb +1 -3
- data/lib/ramaze/bin/runner.rb +0 -14
- data/lib/ramaze/cache.rb +21 -0
- data/lib/ramaze/cache/memcache.rb +1 -3
- data/lib/ramaze/cache/redis.rb +2 -4
- data/lib/ramaze/cache/sequel.rb +4 -5
- data/lib/ramaze/controller.rb +10 -3
- data/lib/ramaze/default_middleware.rb +24 -0
- data/lib/ramaze/files.rb +5 -5
- data/lib/ramaze/gestalt.rb +10 -10
- data/lib/ramaze/helper/blue_form.rb +33 -6
- data/lib/ramaze/helper/csrf.rb +22 -30
- data/lib/ramaze/helper/flash.rb +1 -1
- data/lib/ramaze/helper/upload.rb +5 -3
- data/lib/ramaze/helper/user.rb +1 -0
- data/lib/ramaze/log.rb +0 -5
- data/lib/ramaze/log/informer.rb +3 -3
- data/lib/ramaze/log/logging.rb +4 -4
- data/lib/ramaze/log/syslog.rb +2 -2
- data/lib/ramaze/response.rb +1 -1
- data/lib/ramaze/snippets.rb +0 -20
- data/lib/ramaze/spec/bacon.rb +5 -13
- data/lib/ramaze/version.rb +1 -1
- data/lib/ramaze/view/erector.rb +1 -3
- data/lib/ramaze/view/erubis.rb +1 -3
- data/lib/ramaze/view/ezamar.rb +1 -3
- data/lib/ramaze/view/haml.rb +1 -4
- data/lib/ramaze/view/liquid.rb +1 -3
- data/lib/ramaze/view/lokar.rb +1 -3
- data/lib/ramaze/view/mustache.rb +1 -3
- data/lib/ramaze/view/nagoro.rb +1 -4
- data/lib/ramaze/view/remarkably.rb +1 -4
- data/lib/ramaze/view/sass.rb +2 -5
- data/lib/ramaze/view/slim.rb +1 -3
- data/lib/ramaze/view/slippers.rb +1 -3
- data/lib/ramaze/view/tagz.rb +1 -3
- data/lib/ramaze/view/tenjin.rb +1 -3
- data/ramaze.gemspec +45 -16
- data/spec/helper.rb +0 -1
- data/spec/ramaze/cache/localmemcache.rb +0 -4
- data/spec/ramaze/controller/mapping.rb +17 -0
- data/spec/ramaze/dispatcher/directory.rb +6 -5
- data/spec/ramaze/dispatcher/file.rb +7 -4
- data/spec/ramaze/files.rb +0 -2
- data/spec/ramaze/helper/csrf.rb +0 -26
- data/spec/ramaze/helper/upload.rb +1 -0
- data/spec/ramaze/helper/user.rb +12 -0
- data/spec/ramaze/log/syslog.rb +5 -1
- data/spec/ramaze/view/lokar.rb +1 -1
- data/spec/ramaze/view/nagoro.rb +1 -1
- data/tasks/bacon.rake +1 -1
- data/tasks/gems.rake +15 -0
- data/tasks/release.rake +37 -8
- metadata +106 -139
- data/guide/_static/ramaze_console.png +0 -0
- data/guide/tutorials/introduction.md +0 -263
- data/lib/proto/model/init.rb +0 -6
- data/lib/proto/public/.htaccess +0 -24
- data/lib/proto/public/dispatch.fcgi +0 -11
- data/lib/proto/spec/main.rb +0 -20
- data/lib/proto/start.rb +0 -20
- data/lib/ramaze/app_graph.rb +0 -105
- data/lib/ramaze/bin/console.rb +0 -87
- data/lib/ramaze/bin/helper.rb +0 -107
- data/lib/ramaze/bin/restart.rb +0 -95
- data/lib/ramaze/bin/start.rb +0 -221
- data/lib/ramaze/bin/status.rb +0 -152
- data/lib/ramaze/bin/stop.rb +0 -112
- data/lib/ramaze/dependencies.rb +0 -84
- data/lib/ramaze/helper/disqus.rb +0 -27
- data/lib/ramaze/helper/ultraviolet.rb +0 -49
- data/lib/ramaze/log/analogger.rb +0 -50
- data/lib/ramaze/log/growl.rb +0 -55
- data/lib/ramaze/log/knotify.rb +0 -31
- data/lib/ramaze/log/xosd.rb +0 -94
- data/lib/ramaze/middleware_compiler.rb +0 -36
- data/lib/ramaze/plugin.rb +0 -69
- data/lib/ramaze/setup.rb +0 -210
- data/lib/ramaze/snippets/array/put_within.rb +0 -38
- data/lib/ramaze/snippets/binding/locals.rb +0 -20
- data/lib/ramaze/snippets/fiber.rb +0 -41
- data/lib/ramaze/snippets/kernel/pretty_inspect.rb +0 -18
- data/lib/ramaze/snippets/metaid.rb +0 -17
- data/lib/ramaze/snippets/numeric/filesize_format.rb +0 -30
- data/lib/ramaze/snippets/numeric/time.rb +0 -59
- data/lib/ramaze/snippets/object/instance_variable_defined.rb +0 -16
- data/lib/ramaze/snippets/object/pretty.rb +0 -12
- data/lib/ramaze/snippets/object/scope.rb +0 -16
- data/lib/ramaze/snippets/ordered_set.rb +0 -51
- data/lib/ramaze/snippets/proc/locals.rb +0 -19
- data/lib/ramaze/snippets/ramaze/acquire.rb +0 -32
- data/lib/ramaze/snippets/ramaze/dictionary.rb +0 -400
- data/lib/ramaze/snippets/ramaze/fiber.rb +0 -24
- data/lib/ramaze/snippets/ramaze/struct.rb +0 -43
- data/lib/ramaze/snippets/string/end_with.rb +0 -17
- data/lib/ramaze/snippets/string/ord.rb +0 -16
- data/lib/ramaze/snippets/string/start_with.rb +0 -14
- data/lib/ramaze/snippets/thread/into.rb +0 -16
- data/lib/ramaze/spec.rb +0 -4
- data/spec/ramaze/bin/start.rb +0 -34
- data/spec/ramaze/log/growl.rb +0 -45
- data/spec/ramaze/struct.rb +0 -50
- data/spec/snippets/array/put_within.rb +0 -38
- data/spec/snippets/binding/locals.rb +0 -12
- data/spec/snippets/numeric/filesize_format.rb +0 -15
- data/spec/snippets/numeric/time.rb +0 -15
- data/spec/snippets/ordered_set.rb +0 -66
- data/spec/snippets/ramaze/acquire.rb +0 -80
- data/spec/snippets/ramaze/dictionary.rb +0 -113
- data/spec/snippets/ramaze/struct.rb +0 -15
- data/spec/snippets/thread/into.rb +0 -12
- data/tasks/gem.rake +0 -21
- data/tasks/setup.rake +0 -14
data/lib/ramaze/bin/console.rb
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
require 'irb'
|
|
2
|
-
require 'irb/completion'
|
|
3
|
-
|
|
4
|
-
module Ramaze
|
|
5
|
-
#:nodoc:
|
|
6
|
-
module Bin
|
|
7
|
-
##
|
|
8
|
-
# Allows the user to enter an IRB like session that takes advantage of
|
|
9
|
-
# everything provided by Ramaze.
|
|
10
|
-
#
|
|
11
|
-
# Usage:
|
|
12
|
-
#
|
|
13
|
-
# ramaze console
|
|
14
|
-
# ramaze console /path/to/app/start.rb
|
|
15
|
-
#
|
|
16
|
-
# @author Yorick Peterse
|
|
17
|
-
# @since 21-07-2011
|
|
18
|
-
#
|
|
19
|
-
class Console
|
|
20
|
-
# String containing the description of this command.
|
|
21
|
-
Description = 'Starts an IRB session with Ramaze loaded into the session'
|
|
22
|
-
|
|
23
|
-
# The banner that is displayed when the -h or --help option is specified.
|
|
24
|
-
Banner = <<-TXT.strip
|
|
25
|
-
Starts an IRB session and loads Ramaze into the session. All specified Rack
|
|
26
|
-
options are ignored and environment variables are passed to IRB.
|
|
27
|
-
|
|
28
|
-
Usage:
|
|
29
|
-
ramaze console [DIR] [OPTIONS]
|
|
30
|
-
|
|
31
|
-
Example:
|
|
32
|
-
ramaze console
|
|
33
|
-
ramaze console /home/foobar/ramaze/start.rb
|
|
34
|
-
TXT
|
|
35
|
-
|
|
36
|
-
##
|
|
37
|
-
# Creates a new instance of the command and sets all the options.
|
|
38
|
-
#
|
|
39
|
-
# @author Yorick Peterse
|
|
40
|
-
# @since 21-07-2011
|
|
41
|
-
#
|
|
42
|
-
def initialize
|
|
43
|
-
@options = OptionParser.new do |opt|
|
|
44
|
-
opt.banner = Banner
|
|
45
|
-
opt.summary_indent = ' '
|
|
46
|
-
|
|
47
|
-
opt.separator "\nOptions:\n"
|
|
48
|
-
|
|
49
|
-
opt.on('-h', '--help', 'Shows this help message') do
|
|
50
|
-
puts @options
|
|
51
|
-
exit
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
##
|
|
57
|
-
# Runs the command based on the given command line arguments.
|
|
58
|
-
#
|
|
59
|
-
# @author Yorick Peterse
|
|
60
|
-
# @since 21-07-2011
|
|
61
|
-
# @param [Array] argv An array of command line arguments.
|
|
62
|
-
#
|
|
63
|
-
def run(argv = [])
|
|
64
|
-
@options.parse!(argv)
|
|
65
|
-
|
|
66
|
-
start_file = argv.delete_at(0)
|
|
67
|
-
start_file = File.join(Dir.pwd, 'start.rb') if start_file.nil?
|
|
68
|
-
|
|
69
|
-
if File.directory?(start_file)
|
|
70
|
-
start_file = File.join(start_file, 'start.rb')
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
if !File.exist?(start_file)
|
|
74
|
-
abort "The file #{start_file} does not exist"
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
start_file = Pathname.new(start_file).realpath.to_s
|
|
78
|
-
Ramaze.options.started = true
|
|
79
|
-
|
|
80
|
-
require(start_file)
|
|
81
|
-
|
|
82
|
-
IRB.start
|
|
83
|
-
puts 'Ramazement has ended, go in peace.'
|
|
84
|
-
end
|
|
85
|
-
end # Console
|
|
86
|
-
end # Bin
|
|
87
|
-
end # Ramaze
|
data/lib/ramaze/bin/helper.rb
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
module Ramaze
|
|
2
|
-
#:nodoc:
|
|
3
|
-
module Bin
|
|
4
|
-
##
|
|
5
|
-
# Module containing various helper methods useful for most commands.
|
|
6
|
-
#
|
|
7
|
-
# @author Yorick Peterse
|
|
8
|
-
# @author TJ Vanderpoel
|
|
9
|
-
# @since 21-07-2011
|
|
10
|
-
#
|
|
11
|
-
module Helper
|
|
12
|
-
##
|
|
13
|
-
# Checks if the specified PID points to a process that's already running.
|
|
14
|
-
#
|
|
15
|
-
# @author TJ Vanderpoel
|
|
16
|
-
# @since 21-07-2011
|
|
17
|
-
# @param [String] pid The path to the PID.
|
|
18
|
-
# @return [TrueClass|FalseClass]
|
|
19
|
-
#
|
|
20
|
-
def is_running?(pid)
|
|
21
|
-
return false if !File.exist?(pid)
|
|
22
|
-
|
|
23
|
-
pid = File.read(pid).to_i
|
|
24
|
-
|
|
25
|
-
if is_windows?
|
|
26
|
-
wmi = WIN32OLE.connect("winmgmts://")
|
|
27
|
-
processes, ours = wmi.ExecQuery(
|
|
28
|
-
"select * from win32_process where ProcessId = #{pid}"
|
|
29
|
-
), []
|
|
30
|
-
|
|
31
|
-
processes.each { |process| ours << process.Name }
|
|
32
|
-
|
|
33
|
-
return ours.first.nil?
|
|
34
|
-
else
|
|
35
|
-
begin
|
|
36
|
-
prio = Process.getpriority(Process::PRIO_PROCESS, pid)
|
|
37
|
-
return true
|
|
38
|
-
rescue Errno::ESRCH
|
|
39
|
-
return false
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
##
|
|
45
|
-
# Checks if the system the user is using is Windows.
|
|
46
|
-
#
|
|
47
|
-
# @author TJ Vanderpoel
|
|
48
|
-
# @since 21-07-2011
|
|
49
|
-
# @return [TrueClass|FalseClass]
|
|
50
|
-
#
|
|
51
|
-
def is_windows?
|
|
52
|
-
return @is_win if @is_win
|
|
53
|
-
|
|
54
|
-
begin; require "win32ole"; rescue LoadError; end
|
|
55
|
-
|
|
56
|
-
@is_win ||= Object.const_defined?("WIN32OLE")
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
##
|
|
60
|
-
# Tries to extract the path to the Rackup executable.
|
|
61
|
-
#
|
|
62
|
-
# @author TJ Vanderpoel
|
|
63
|
-
# @since 21-07-2001
|
|
64
|
-
# @return [String]
|
|
65
|
-
#
|
|
66
|
-
def rackup_path
|
|
67
|
-
return @rackup_path if @rackup_path
|
|
68
|
-
|
|
69
|
-
# Check with 'which' on platforms which support it
|
|
70
|
-
unless is_windows?
|
|
71
|
-
@rackup_path = %x{which rackup}.to_s.chomp
|
|
72
|
-
|
|
73
|
-
if @rackup_path.size > 0 and File.file?(@rackup_path)
|
|
74
|
-
return @rackup_path
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# check for rackup in RUBYLIB
|
|
79
|
-
libs = ENV["RUBYLIB"].to_s.split(is_windows? ? ";" : ":")
|
|
80
|
-
|
|
81
|
-
if rack_lib = libs.detect { |r| r.match %r<(\\|/)rack\1> }
|
|
82
|
-
require "pathname"
|
|
83
|
-
@rackup_path = Pathname.new(rack_lib).parent.join("bin").join(
|
|
84
|
-
"rackup"
|
|
85
|
-
).expand_path
|
|
86
|
-
|
|
87
|
-
return @rackup_path if File.file?(@rackup_path)
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
begin
|
|
91
|
-
require "rubygems"
|
|
92
|
-
require "rack"
|
|
93
|
-
require "pathname"
|
|
94
|
-
|
|
95
|
-
@rackup_path = Pathname.new(Gem.bindir).join("rackup").to_s
|
|
96
|
-
|
|
97
|
-
return @rackup_path if File.file?(@rackup_path)
|
|
98
|
-
rescue LoadError
|
|
99
|
-
nil
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
@rackup_path = nil
|
|
103
|
-
abort "Cannot find the path to the Rackup executable"
|
|
104
|
-
end
|
|
105
|
-
end # Helper
|
|
106
|
-
end # Bin
|
|
107
|
-
end # Ramaze
|
data/lib/ramaze/bin/restart.rb
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
module Ramaze
|
|
2
|
-
#:nodoc:
|
|
3
|
-
module Bin
|
|
4
|
-
##
|
|
5
|
-
# Restarts an application based on a specified directory/rackup file and
|
|
6
|
-
# PID. The PID is used to kill the process, the Rackup file is used to start
|
|
7
|
-
# the process again after it has been killed.
|
|
8
|
-
#
|
|
9
|
-
# Usage:
|
|
10
|
-
#
|
|
11
|
-
# ramaze restart
|
|
12
|
-
# ramaze restart /home/foobar/projects/ramaze/ \
|
|
13
|
-
# -P /home/foobar/projects/ramaze/ramaze.pid
|
|
14
|
-
#
|
|
15
|
-
# @author Yorick Peterse
|
|
16
|
-
# @since 21-07-2011
|
|
17
|
-
#
|
|
18
|
-
class Restart
|
|
19
|
-
# The description of this command, displayed in the global help message.
|
|
20
|
-
Description = 'Restarts an application'
|
|
21
|
-
|
|
22
|
-
# The banner, displayed when the -h or --help option is specified.
|
|
23
|
-
Banner = <<-TXT.strip
|
|
24
|
-
Restarts an active Ramaze application.
|
|
25
|
-
|
|
26
|
-
Usage:
|
|
27
|
-
ramaze restart [RACKUP] [OPTIONS]
|
|
28
|
-
|
|
29
|
-
Example:
|
|
30
|
-
ramaze restart config.ru -P ramaze.pid
|
|
31
|
-
TXT
|
|
32
|
-
|
|
33
|
-
##
|
|
34
|
-
# Creates a new instance of the command and sets all the options.
|
|
35
|
-
#
|
|
36
|
-
# @author Yorick Peterse
|
|
37
|
-
# @since 21-07-2011
|
|
38
|
-
#
|
|
39
|
-
def initialize
|
|
40
|
-
@options = OptionParser.new do |opt|
|
|
41
|
-
opt.banner = Banner
|
|
42
|
-
opt.summary_indent = ' '
|
|
43
|
-
|
|
44
|
-
opt.separator "\nOptions:\n"
|
|
45
|
-
|
|
46
|
-
opt.on('-h', '--help', 'Shows this help message') do
|
|
47
|
-
puts @options
|
|
48
|
-
exit
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
opt.on(
|
|
52
|
-
'-P',
|
|
53
|
-
'--pid FILE',
|
|
54
|
-
'Uses the PID to kill the application'
|
|
55
|
-
) do |pid|
|
|
56
|
-
@pid = pid
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
##
|
|
62
|
-
# Runs the command based on the specified command line arguments.
|
|
63
|
-
#
|
|
64
|
-
# @author Yorick Peterse
|
|
65
|
-
# @since 21-07-2011
|
|
66
|
-
# @param [Array] argv An array containing all command line arguments.
|
|
67
|
-
#
|
|
68
|
-
def run(argv = [])
|
|
69
|
-
@options.parse!(argv)
|
|
70
|
-
|
|
71
|
-
@rackup = argv.delete_at(0)
|
|
72
|
-
@rackup = File.join(Dir.pwd, 'config.ru') if @rackup.nil?
|
|
73
|
-
|
|
74
|
-
if File.directory?(@rackup)
|
|
75
|
-
@rackup = File.join(@rackup, 'config.ru')
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
if !File.exist?(@rackup)
|
|
79
|
-
abort "The Rackup file #{@rackup} does not exist"
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
stop = Ramaze::Bin::Runner::Commands[:stop].new
|
|
83
|
-
start = Ramaze::Bin::Runner::Commands[:start].new
|
|
84
|
-
params = [@rackup]
|
|
85
|
-
|
|
86
|
-
unless @pid.nil?
|
|
87
|
-
params.push("-P #{@pid}")
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
stop.run([@pid])
|
|
91
|
-
start.run(params)
|
|
92
|
-
end
|
|
93
|
-
end # Restart
|
|
94
|
-
end # Bin
|
|
95
|
-
end # Ramaze
|
data/lib/ramaze/bin/start.rb
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
module Ramaze
|
|
2
|
-
#:nodoc:
|
|
3
|
-
module Bin
|
|
4
|
-
##
|
|
5
|
-
# The start command is used to start a Ramaze application. The ramaze start
|
|
6
|
-
# command optionally takes a directory or path to a file. If it's a
|
|
7
|
-
# directory this command will look for a Rackup file in that directory,
|
|
8
|
-
# otherwise it assumes the specified file is a Rackup file.
|
|
9
|
-
#
|
|
10
|
-
# Usage:
|
|
11
|
-
#
|
|
12
|
-
# ramaze start
|
|
13
|
-
# ramaze start /home/foobar/projects/blog/config.ru
|
|
14
|
-
# ramaze start /home/foobar/projects/blog
|
|
15
|
-
#
|
|
16
|
-
# @author Yorick Peterse
|
|
17
|
-
# @since 21-07-2011
|
|
18
|
-
#
|
|
19
|
-
class Start
|
|
20
|
-
include Ramaze::Bin::Helper
|
|
21
|
-
|
|
22
|
-
# The description of this command, displayed when the global help menu is
|
|
23
|
-
# invoked.
|
|
24
|
-
Description = 'Starts an instance of an application'
|
|
25
|
-
|
|
26
|
-
# The banner of this command, displayed when it's invoked with the -h or
|
|
27
|
-
# --help option.
|
|
28
|
-
Banner = <<-TXT.strip
|
|
29
|
-
Starts an instance of an application using the settings
|
|
30
|
-
specified in a Rackup file in the current directory.
|
|
31
|
-
|
|
32
|
-
Usage:
|
|
33
|
-
ramaze start [RACKUP CONFIG] [OPTIONS]
|
|
34
|
-
|
|
35
|
-
Example:
|
|
36
|
-
ramaze start --help
|
|
37
|
-
TXT
|
|
38
|
-
|
|
39
|
-
##
|
|
40
|
-
# Creates a new instance of the command and prepares OptionParser.
|
|
41
|
-
#
|
|
42
|
-
# @author Yorick Peterse
|
|
43
|
-
# @since 21-07-2011
|
|
44
|
-
#
|
|
45
|
-
def initialize
|
|
46
|
-
@ruby_options = {}
|
|
47
|
-
@rack_options = {}
|
|
48
|
-
@options = OptionParser.new do |opt|
|
|
49
|
-
opt.banner = Banner
|
|
50
|
-
opt.summary_indent = ' '
|
|
51
|
-
|
|
52
|
-
# Sets all Ruby options
|
|
53
|
-
opt.separator "\nRuby Options:\n"
|
|
54
|
-
|
|
55
|
-
opt.on('-e', '--eval LINE', 'Evaluates a line of code') do |code|
|
|
56
|
-
@ruby_options['-e'] = code
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
opt.on('-d', '--debug', 'Set debugging flags (set $DEBUG to true)') do
|
|
60
|
-
@ruby_options['-d'] = nil
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
opt.on('-w', '--warn', 'Turns warnings on for the script') do
|
|
64
|
-
@ruby_options['-w'] = nil
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
opt.on('-I', '--include PATH', 'specifies the $LOAD_PATH') do |path|
|
|
68
|
-
@ruby_options['-I'] = path
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
opt.on(
|
|
72
|
-
'-r',
|
|
73
|
-
'--require LIBRARY',
|
|
74
|
-
'requires the library before starting'
|
|
75
|
-
) do |library|
|
|
76
|
-
@ruby_options['-r'] = library
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# Set all Rack options
|
|
80
|
-
opt.separator "\nRack Options:\n"
|
|
81
|
-
|
|
82
|
-
opt.on(
|
|
83
|
-
'-s',
|
|
84
|
-
'--server SERVER',
|
|
85
|
-
'Serve the application using the given server'
|
|
86
|
-
) do |server|
|
|
87
|
-
@rack_options['-s'] = server
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
opt.on(
|
|
91
|
-
'-o',
|
|
92
|
-
'--host HOST',
|
|
93
|
-
'Listens on the given host (0.0.0.0 by default)'
|
|
94
|
-
) do |host|
|
|
95
|
-
@rack_options['-o'] = host
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
opt.on(
|
|
99
|
-
'-p',
|
|
100
|
-
'--port PORT',
|
|
101
|
-
'Uses the given port, set to 9292 by default'
|
|
102
|
-
) do |port|
|
|
103
|
-
@rack_options['-p'] = port
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
opt.on(
|
|
107
|
-
'-O',
|
|
108
|
-
'--option NAME[=VALUE]',
|
|
109
|
-
'Passes the given option and it\'s value to the server'
|
|
110
|
-
) do |name|
|
|
111
|
-
@rack_options['-O'] = name
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
opt.on(
|
|
115
|
-
'-E',
|
|
116
|
-
'--env ENVIRONMENT',
|
|
117
|
-
'Uses the specified environment, set to development by default'
|
|
118
|
-
) do |env|
|
|
119
|
-
@rack_options['-E'] = env
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
opt.on('-D', '--daemonize', 'Runs as a daemon in the background') do
|
|
123
|
-
@rack_options['-D'] = nil
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
opt.on(
|
|
127
|
-
'-P',
|
|
128
|
-
'--pid FILE',
|
|
129
|
-
'File to store the PID in, defaults to rack.pid'
|
|
130
|
-
) do |pid|
|
|
131
|
-
@rack_options['-P'] = pid
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
# Set all common options
|
|
135
|
-
opt.separator "\nOptions\n"
|
|
136
|
-
|
|
137
|
-
opt.on('-h', '--help', 'Shows this help message') do
|
|
138
|
-
puts @options
|
|
139
|
-
exit
|
|
140
|
-
end
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
##
|
|
145
|
-
# Runs the command based on the given command line arguments.
|
|
146
|
-
#
|
|
147
|
-
# @author Yorick Peterse
|
|
148
|
-
# @since 21-07-2011
|
|
149
|
-
# @param [Array] argv An array of command line arguments.
|
|
150
|
-
#
|
|
151
|
-
def run(argv = [])
|
|
152
|
-
begin
|
|
153
|
-
@options.parse!(argv)
|
|
154
|
-
rescue => e
|
|
155
|
-
warn "Error: #{e.message}"
|
|
156
|
-
abort @options.to_s
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
# Remove all trailing/leading whitespace from the options
|
|
160
|
-
@rack_options.each do |k, v|
|
|
161
|
-
@rack_options[k] = v.strip if v.respond_to?(:strip)
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
@ruby_options.each do |k, v|
|
|
165
|
-
@ruby_options[k] = v.strip if v.respond_to?(:strip)
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
rackup_config = argv.delete_at(0)
|
|
169
|
-
rackup_config = File.join(Dir.pwd, 'config.ru') if rackup_config.nil?
|
|
170
|
-
|
|
171
|
-
# Check if the config is a directory or file
|
|
172
|
-
if File.directory?(rackup_config)
|
|
173
|
-
rackup_config = File.join(rackup_config, 'config.ru')
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
if !File.exist?(rackup_config)
|
|
177
|
-
abort "The Rackup config #{rackup_config} does not exist"
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
# Set the default port and server to use.
|
|
181
|
-
if !@rack_options['-p']
|
|
182
|
-
@rack_options['-p'] = 7000
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
# Set the default server to use
|
|
186
|
-
if !@rack_options['-s']
|
|
187
|
-
@rack_options['-s'] = Ramaze.options.adapter.handler.to_s
|
|
188
|
-
end
|
|
189
|
-
|
|
190
|
-
# If a PID is supplied we should first check to see if Ramaze isn't
|
|
191
|
-
# already running.
|
|
192
|
-
if @rack_options.key?('-P') and is_running?(@rack_options['-P'])
|
|
193
|
-
abort 'This application is already running'
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
params = []
|
|
197
|
-
|
|
198
|
-
@ruby_options.merge(@rack_options).each do |opt, value|
|
|
199
|
-
params.push("#{opt}#{value}")
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
start_server(rackup_path, rackup_config, *params)
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
##
|
|
206
|
-
# Starts a server baed on the rackup path, rackup configuration file and
|
|
207
|
-
# additional parameters.
|
|
208
|
-
#
|
|
209
|
-
# @author Yorick Peterse
|
|
210
|
-
# @since 21-10-2011
|
|
211
|
-
# @param [String] rackup_path The path to the Rackup executable.
|
|
212
|
-
# @param [String] rackup_config The path to the config.ru file to use.
|
|
213
|
-
# @param [Array] *params Additional parameters to pass to the ``exec()``
|
|
214
|
-
# method.
|
|
215
|
-
#
|
|
216
|
-
def start_server(rackup_path, rackup_config, *params)
|
|
217
|
-
exec('ruby', rackup_path, rackup_config, *params)
|
|
218
|
-
end
|
|
219
|
-
end # Start
|
|
220
|
-
end # Bin
|
|
221
|
-
end # Ramaze
|