Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何修改此rake任务以启动支持本地调试的精简服务器? 问题:_Ruby_Debugging_Sinatra_Rake - Fatal编程技术网

Ruby 如何修改此rake任务以启动支持本地调试的精简服务器? 问题:

Ruby 如何修改此rake任务以启动支持本地调试的精简服务器? 问题:,ruby,debugging,sinatra,rake,Ruby,Debugging,Sinatra,Rake,我希望能够在本地机器上调试Thin托管的Sinatra网站,并希望能够通过使用rake启动该网站 我无法接受建议使用不同技术(如Windows、Rails、Java)或其他服务器(如unicorn、passenger、puma)的答案;然而,如果我所要求的是不可能的,那么我会接受这个答案 我试过的 我当前的Rakefile包含一个任务:start,该任务启动精简服务器,但当它到达断点时,我的终端上不会显示任何输出。如果我直接从终端启动精简,那么当它按预期到达断点时,我会看到(rdb:1)提示。无

我希望能够在本地机器上调试Thin托管的Sinatra网站,并希望能够通过使用
rake
启动该网站

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

我试过的 我当前的
Rakefile
包含一个任务
:start
,该任务启动精简服务器,但当它到达断点时,我的终端上不会显示任何输出。如果我直接从终端启动精简,那么当它按预期到达断点时,我会看到
(rdb:1)
提示。无论哪种情况,精简服务器都正确运行了站点(通过注释掉断点来确认)

Gemfile 耙子 config.ru app.rb
需要“sinatra”
需要“调试器/撬动”
模块模块示例
类应用程序
您没有输出到标准输出。backticks执行命令并以字符串形式返回输出,以便您可以执行以下操作

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

从中了解有关调用命令行调用的更多信息。

由于启动服务器后不需要rake环境,
exec
也可以工作
require File.expand_path('app', File.dirname(__FILE__))

run ModularExample::App.new
require 'sinatra'
require 'debugger/pry'

module ModularExample
  class App < Sinatra::Base
    get '/' do
      debugger
      "Hello, world"
    end
  end
end
puts `thin -e development -R #{conf} --debug start`
task :start do
  conf = File.expand_path('config.ru', File.dirname(__FILE__))
  exec("thin -e development -R #{conf} --debug start")
end