gpt4 book ai didi

ruby - 我将如何修改此 rake 任务以启动支持本地调试的瘦服务器?

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:18 25 4
gpt4 key购买 nike

问题

我希望能够在我的本地计算机上调试由 Thin 托管的 Sinatra 网站,并且我希望能够使用 rake 启动它。

我无法接受建议使用不同技术(例如 Windows、Rails、Java)或其他服务器(例如 unicorn、passenger、puma)的答案;但是,如果我所要求的是不可能的,那么我会接受这个答案。

我尝试过的

我当前的 Rakefile 包含一个启动瘦服务器的任务 :start,但是当它遇到断点时,我的终端上没有显示任何输出。如果我直接从终端启动 Thin,那么当它按预期到达断点时,我会看到 (rdb:1) 提示。在任何一种情况下,瘦服务器都在正确运行站点(通过注释掉断点来确认)。

gem 文件

source :rubygems
gem 'sinatra'
gem 'thin'
gem 'debugger-pry'

拉克文件

task :start do
conf = File.expand_path('config.ru', File.dirname(__FILE__))
`thin -e development -R #{conf} --debug start`
end

配置.ru

require File.expand_path('app', File.dirname(__FILE__))

run ModularExample::App.new

应用.rb

require 'sinatra'
require 'debugger/pry'

module ModularExample
class App < Sinatra::Base
get '/' do
debugger
"Hello, world"
end
end
end

最佳答案

您没有输出到 STDOUT。反引号执行命令并将输出作为字符串返回,这样您就可以执行类似

的操作
puts `thin -e development -R #{conf} --debug start`

但是你想将进程输出流式传输到 STDOUT,所以你实际上想做的是:

task :start do
conf = File.expand_path('config.ru', File.dirname(__FILE__))
exec("thin -e development -R #{conf} --debug start")
end

了解有关从此 question 调用命令行调用的更多信息.

关于ruby - 我将如何修改此 rake 任务以启动支持本地调试的瘦服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14617242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com