草庐IT

rack-middleware

全部标签

ruby - 如何使用 Rack 图在不同​​端口上运行两个瘦(或其他)服务器?

我的目标是通过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

ruby - 如何正确地将 domain.com/subfolder 指向 Ruby with Rack 中的静态网站?

我已使用本指南将静态网站部署到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"

ruby - 如何区分Sinatra请求对象和Rack Test请求方法?

我有一个在Sinatra应用程序范围内运行的方法,用于检查请求是否安全:secure_request?request.env['HTTPS']=='on'end这工作正常,但是当我从另一个不共享Sinatra应用程序范围的类调用它时,它会尝试发出机架测试请求,并引发错误:参数数量错误(1为0).那么,有没有办法显式指定Sinatra应用程序请求,例如self.request或app.request? 最佳答案 从另一个类调用request方法闻起来像是糟糕的代码设计,将另一个类与您的应用程序紧密耦合。secure_request?在

ruby - 如何获取正在通过 rack-test 测试的 Sinatra 应用程序实例?

我想获取正在通过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

ruby - 如何使用带有 HTTP 基本身份验证的 Passenger(在 Apache 上)部署多个 Rack/Sinatra 应用程序?

这里的问题是同一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|

ruby - Rack : cannot load such file 'sinatra'

我已经在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

ruby - JRuby/Rack 部署

我知道这很奇特,但我想使用JRuby部署一个RubyWeb应用程序(不是Rails,而是基于Rack,因此它可以很好地插入大多数Ruby服务器)。Google和friend们给了我一些成功案例,但大多与rails相关,如果不是,则没有提供部署的详细信息。如果重要的话,我使用的框架是Ramaze。如有任何帮助,我们将不胜感激。 最佳答案 在我看来,使用rackup脚本运行基于Rack的应用程序才是真正的Ruby方式。我也想对JRuby应用同样的方法。这就是我写jetty-rackuphttp://github.com/geekq/je

ruby - Rack URL 映射

我正在尝试编写两种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”路径的替代)。根据我的测试,路径“/*”未被解释为

ruby - 直接使用 Rack TryStatic 服务文件?

我正在使用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

ruby - Rack:单个 Rack 应用程序的多个 session cookie

如何在单个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