Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
a080323c
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a080323c
编写于
11月 23, 2009
作者:
C
Carlhuda
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactor script/server into an object that inherits from Rack::Server
上级
58dec093
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
62 addition
and
59 deletion
+62
-59
railties/lib/rails/commands/server.rb
railties/lib/rails/commands/server.rb
+61
-59
railties/lib/rails/generators/rails/app/templates/script/server
...es/lib/rails/generators/rails/app/templates/script/server
+1
-0
未找到文件。
railties/lib/rails/commands/server.rb
浏览文件 @
a080323c
require
'action_dispatch'
require
'fileutils'
require
'optparse'
require
'action_dispatch'
options
=
{
:Port
=>
3000
,
:Host
=>
"0.0.0.0"
,
:environment
=>
(
ENV
[
'RAILS_ENV'
]
||
"development"
).
dup
,
:config
=>
"
#{
Rails
.
root
}
/config.ru"
,
:detach
=>
false
,
:debugger
=>
false
}
module
Rails
class
Server
<
::
Rack
::
Server
class
Options
def
parse!
(
args
)
options
=
{}
args
=
args
.
dup
opt_parser
=
OptionParser
.
new
do
|
opts
|
opts
.
on
(
"-p"
,
"--port=port"
,
Integer
,
"Runs Rails on the specified port."
,
"Default:
#{
options
[
:Port
]
}
"
)
{
|
v
|
options
[
:Port
]
=
v
}
opts
.
on
(
"-b"
,
"--binding=ip"
,
String
,
"Binds Rails to the specified ip."
,
"Default:
#{
options
[
:Host
]
}
"
)
{
|
v
|
options
[
:Host
]
=
v
}
opts
.
on
(
"-c"
,
"--config=file"
,
String
,
"Use custom rackup configuration file"
)
{
|
v
|
options
[
:config
]
=
v
}
opts
.
on
(
"-d"
,
"--daemon"
,
"Make server run as a Daemon."
)
{
options
[
:daemonize
]
=
true
}
opts
.
on
(
"-u"
,
"--debugger"
,
"Enable ruby-debugging for the server."
)
{
options
[
:debugger
]
=
true
}
opts
.
on
(
"-e"
,
"--environment=name"
,
String
,
"Specifies the environment to run this server under (test/development/production)."
,
"Default:
#{
options
[
:environment
]
}
"
)
{
|
v
|
options
[
:environment
]
=
v
}
ARGV
.
clone
.
options
do
|
opts
|
opts
.
on
(
"-p"
,
"--port=port"
,
Integer
,
"Runs Rails on the specified port."
,
"Default:
#{
options
[
:Port
]
}
"
)
{
|
v
|
options
[
:Port
]
=
v
}
opts
.
on
(
"-b"
,
"--binding=ip"
,
String
,
"Binds Rails to the specified ip."
,
"Default:
#{
options
[
:Host
]
}
"
)
{
|
v
|
options
[
:Host
]
=
v
}
opts
.
on
(
"-c"
,
"--config=file"
,
String
,
"Use custom rackup configuration file"
)
{
|
v
|
options
[
:config
]
=
v
}
opts
.
on
(
"-d"
,
"--daemon"
,
"Make server run as a Daemon."
)
{
options
[
:detach
]
=
true
}
opts
.
on
(
"-u"
,
"--debugger"
,
"Enable ruby-debugging for the server."
)
{
options
[
:debugger
]
=
true
}
opts
.
on
(
"-e"
,
"--environment=name"
,
String
,
"Specifies the environment to run this server under (test/development/production)."
,
"Default:
#{
options
[
:environment
]
}
"
)
{
|
v
|
options
[
:environment
]
=
v
}
opts
.
separator
""
opts
.
separator
""
opts
.
on
(
"-h"
,
"--help"
,
"Show this help message."
)
{
puts
opts
;
exit
}
end
opts
.
on
(
"-h"
,
"--help"
,
"Show this help message."
)
{
puts
opts
;
exit
}
opt_parser
.
parse!
args
opts
.
parse!
end
options
[
:server
]
=
args
.
shift
options
end
end
server
=
Rack
::
Handler
.
get
(
ARGV
.
first
)
rescue
nil
unless
server
begin
server
=
Rack
::
Handler
::
Mongrel
rescue
LoadError
=>
e
server
=
Rack
::
Handler
::
WEBrick
end
end
def
opt_parser
Options
.
new
end
puts
"=> Booting
#{
ActiveSupport
::
Inflector
.
demodulize
(
server
)
}
"
puts
"=> Rails
#{
Rails
.
version
}
application starting on http://
#{
options
[
:Host
]
}
:
#{
options
[
:Port
]
}
"
def
start
puts
"=> Booting
#{
ActiveSupport
::
Inflector
.
demodulize
(
server
)
}
"
puts
"=> Rails
#{
Rails
.
version
}
application starting on http://
#{
options
[
:Host
]
}
:
#{
options
[
:Port
]
}
"
puts
"=> Call with -d to detach"
unless
options
[
:daemonize
]
trap
(
:INT
)
{
exit
}
puts
"=> Ctrl-C to shutdown server"
unless
options
[
:daemonize
]
if
options
[
:detach
]
Process
.
daemon
pid
=
"
#{
Rails
.
root
}
/tmp/pids/server.pid"
File
.
open
(
pid
,
'w'
){
|
f
|
f
.
write
(
Process
.
pid
)
}
at_exit
{
File
.
delete
(
pid
)
if
File
.
exist?
(
pid
)
}
end
ENV
[
"RAILS_ENV"
]
=
options
[
:environment
]
RAILS_ENV
.
replace
(
options
[
:environment
])
if
defined?
(
RAILS_ENV
)
app
=
Rack
::
Builder
.
new
{
use
Rails
::
Rack
::
LogTailer
unless
options
[
:detach
]
use
Rails
::
Rack
::
Debugger
if
options
[
:debugger
]
run
ActionDispatch
::
Utils
.
parse_config
(
options
[
:config
])
}.
to_app
ENV
[
"RAILS_ENV"
]
=
options
[
:environment
]
RAILS_ENV
.
replace
(
options
[
:environment
])
if
defined?
(
RAILS_ENV
)
puts
"=> Call with -d to detach"
super
ensure
puts
'Exiting'
unless
options
[
:daemonize
]
end
trap
(
:INT
)
{
exit
}
def
middleware
middlewares
=
[]
middlewares
<<
[
Rails
::
Rack
::
LogTailer
]
unless
options
[
:daemonize
]
middlewares
<<
[
Rails
::
Rack
::
Debugger
]
if
options
[
:debugger
]
Hash
.
new
(
middlewares
)
end
puts
"=> Ctrl-C to shutdown server"
begin
server
.
run
(
app
,
options
.
merge
(
:AccessLog
=>
[]))
ensure
puts
'Exiting'
def
default_options
{
:Port
=>
3000
,
:Host
=>
"0.0.0.0"
,
:environment
=>
(
ENV
[
'RAILS_ENV'
]
||
"development"
).
dup
,
:rack_file
=>
"
#{
Rails
.
root
}
/config.ru"
,
:daemonize
=>
false
,
:debugger
=>
false
,
:pid
=>
"
#{
Rails
.
root
}
/tmp/pids/server.pid"
,
:AccessLog
=>
[]
}
end
end
end
railties/lib/rails/generators/rails/app/templates/script/server
浏览文件 @
a080323c
require File.expand_path('../../config/application', __FILE__)
require 'rails/commands/server'
Rails::Server.start
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录