我想获取正在通过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
我的本地gem列表bundler(1.6.0)childprocess(0.5.1)ffi(1.9.3)headless(1.0.1)json(1.8.1)mini_portile(0.5.3,0.5.2)minitest(5.3.1)multi_json(1.9.0)rake(10.2.2)rdoc(4.1.1)rubyzip(1.1.2)selenium-webdriver(2.41.0,2.40.0)watir-webdriver(0.6.8)websocket(1.0.7,1.0.4)我还安装了libxml2和libxslt。它说无法加载mini_portilegem,但它
我知道这很奇特,但我想使用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”路径的替代)。根据我的测试,路径“/*”未被解释为
我基本上是在尝试用mini_magick编写这个命令。gmcomposite-composeCopy-geometry+0+210note-transparent1.pngnote-rugby.pngnote-rugby-e.png这是我的代码:image=MiniMagick::Image.open("note-transparent1.png")result=image.composite(MiniMagick::Image.open("note-rugby.png")do|c|c.compose="Copy"c.geometry="+0+210"end)result.write"
我正在使用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
当我使用rackup在本地机器上测试Sinatra应用程序时,每条日志消息都会出现两次。我怎样才能让它们只出现一次? 最佳答案 在您的sinatra应用程序中禁用:logging。rackup在开发环境中启动时添加了Rack::CommonLogger中间件(默认情况下这样做)。 关于ruby-rack复制每条日志消息,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3498345