我的目标是通过Rack在HTTP和HTTPS/SSL上进行一些自动化测试,而无需借助代理服务器设置或类似的东西。我有一个我想测试的gem,我希望其他人也能够在其上运行测试,所以我希望它尽可能独立。App的代码在单独运行时运行良好,因此这里不包括在内,问题出在Rack部分。我想做这样的事情:app=Rack::Builder.appdomap"/"doRack::Handler::WEBrick.runApp,Port:3000endmap"/ssl"doRack::Handler::WEBrick.runApp,Port:3001#moreoptionsforSSLhere...end
我已使用本指南将静态网站部署到Heroku:https://devcenter.heroku.com/articles/static-sites-ruby我创建了这个文件夹结构:-site|-config.ru|-Gemfile|-public|-index.html|-images|-js|-css|-subfolder|-images|-js|-css并将此写入config.ru:useRack::Static,:urls=>["/images","/js","/css"],:root=>"public"useRack::Static,:urls=>["/images","/js"
我有一个在Sinatra应用程序范围内运行的方法,用于检查请求是否安全:secure_request?request.env['HTTPS']=='on'end这工作正常,但是当我从另一个不共享Sinatra应用程序范围的类调用它时,它会尝试发出机架测试请求,并引发错误:参数数量错误(1为0).那么,有没有办法显式指定Sinatra应用程序请求,例如self.request或app.request? 最佳答案 从另一个类调用request方法闻起来像是糟糕的代码设计,将另一个类与您的应用程序紧密耦合。secure_request?在
我想获取正在通过rack-test测试的应用程序实例,以便我可以模拟它的一些方法。我以为我可以简单地将应用程序实例保存在app方法中,但由于某些奇怪的原因不起作用。看起来rack-test只是使用实例来获取类,然后创建自己的实例。我做了一个测试来证明我的问题(它需要gem“sinatra”、“rack-test”和“rr”才能运行):require"sinatra"require"minitest/spec"require"minitest/autorun"require"rack/test"require"rr"describe"instantiatedapp"doincludeRa
这里的问题是同一Sinatra(Rack)应用程序的多个实例部署在Passenger+Apache上的不同子URI上,使用HTTP基本身份验证来阻止不需要的访问:我在我的域中部署了4个Sinatra应用实例:example.com/private/fooexample.com/private/moo......使用Rack::Auth::Basic中间件通过HTTP基本身份验证保护对它们的访问。config.ru所有这些看起来像:#...users={'user'=>'password'}useRack::Auth::Basic,'realm'do|username,password|
我已经在irb中安装了sinatragem,如果我输入,require'sinatra'它返回true。但是当我这样做的时候rackup-dconfig.ru它告诉我nilException`LoadError'at/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36-cannotloadsuchfile--sinatra这是我的config.rurequire'./app'set:environment,ENV['RACK_ENV'].to_symset:app_file,'app.rb'disable:runrunSinat
我知道这很奇特,但我想使用JRuby部署一个RubyWeb应用程序(不是Rails,而是基于Rack,因此它可以很好地插入大多数Ruby服务器)。Google和friend们给了我一些成功案例,但大多与rails相关,如果不是,则没有提供部署的详细信息。如果重要的话,我使用的框架是Ramaze。如有任何帮助,我们将不胜感激。 最佳答案 在我看来,使用rackup脚本运行基于Rack的应用程序才是真正的Ruby方式。我也想对JRuby应用同样的方法。这就是我写jetty-rackuphttp://github.com/geekq/je
我正在尝试编写两种Rack路由。Rack允许我们这样写这样的路由:app=Rack::URLMap.new('/test'=>SimpleAdapter.new,'/files'=>Rack::File.new('.'))就我而言,我想处理这些路线:“/”或“索引”"/*"为了匹配任何其他路由所以我尝试了这个:app=Rack::URLMap.new('/index'=>SimpleAdapter.new,'/'=>Rack::File.new('./public'))这很好用,但是...我不知道如何添加“/”路径(作为“/index”路径的替代)。根据我的测试,路径“/*”未被解释为
我正在使用Middleman创建静态网站。中间人生成静态html文件到./build目录。这是我目前使用的配置:require'rubygems'require'middleman'require'rack/contrib/try_static'useRack::TryStatic,:root=>"build",:urls=>%w[/],:try=>['.html']runMiddleman::Application.server所以Middleman现在正在提供静态文件。如何让Rack::TryStatic直接处理请求?我试着让它变成这样runRack::TryStatic,:roo
如何在单个Rack应用程序中与多个sessioncookie(针对不同的路径或域)进行交互?例如,考虑以下使用3个位置的应用程序:www.my-app.net=>主应用www.my-app.net/app_a=>子应用Aapp_b.my_app.net/=>子应用B应该能够与3个sessioncookie交互:domain=www.my-app.net;路径=/;domain=www.my-app.net;路径=/app_a;domain=app_b.my-app.net/;路径=/;Rack::Session::Cookie似乎是一个不错的选择,但作为中间件,sessioncooki