草庐IT

ruby - 使用 Sinatra 和 Rack Logger 记录时如何过滤敏感信息

我维护一个充当JSONAPI服务的Sinatra应用程序。该API由另一个网络应用程序和移动应用程序使用。我想让Rack::CommonLogger从其日志中排除敏感信息,例如密码。Rails启用了此设置,但我没有找到如何在Sinatra中执行此操作的文档。 最佳答案 您可以像这样尝试拦截写入和过滤掉敏感消息的调用:logger=Logger.new("my_common.log")logger.instance_evaldodefwrite(msg)self.send(:然后,配置Rack::CommonLogger来使用这个记录

ruby - 在本地主机上使用 SSL 运行一个简单的 Rack 应用程序?

我有一个提供静态文件的简单Rack应用程序。我需要在本地使用SSL进行开发。有什么方法可以处理Rack? 最佳答案 我只是获取tunnelsgem,然后使用它启动SSL代理:sudotunnels4439292 关于ruby-在本地主机上使用SSL运行一个简单的Rack应用程序?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/16512873/

ruby - 测试我的简单 Rack 应用程序的更简单方法?

我有一个像这样的Rack应用程序:app=Rack::Builder.newdomap'/'do#...endmap'/edit'do#...endend.to_app如果没有长尾安装/设置/学习过程,我将如何测试它。RSpec和minitest真的很棒,但我真的不想学习也不想设置它们。有什么我可以直接插入并立即用普通Ruby编写/运行测试的东西吗?我想编写像我上面编写的应用程序一样简单的测试,没有高级技术和陷阱。我相信KISS! 最佳答案 你可以试试Specular+Sonar捆绑。Specular用于在您需要的任何地方编写测试。

ruby - 如何访问当前的 Rack::Session 实现

我正在开发一个gem,它不仅需要读取和写入当前session,还需要读取和写入其他“链接”session。现在,只要我需要更新当前session以外的session,我就会对我们在rails和rack应用程序中使用的底层session存储进行硬编码读写。但是,需要一种更通用的方法来使解决方案可移植到其他session实现。在Rails应用程序中,我可以查看Rails.application.config.session_store以确定session存储实现,并实例化一个新实例以读取和写入当前session以外的session。生成session存储的另一个实例似乎效率有点低,但它似乎

ruby-on-rails - Rails 3 + 乘客 : Rack error

我遇到了以下错误,它是几天前突然出现并使我的网站崩溃的。我在带有Passenger的Dreamhost机器上使用Ruby1.8.7、Rails3.0.0。参见thiscachedpage对于同一问题的另一种描述。Ruby(Rack)applicationcouldnotbestarted.Asourcefilethattheapplicationrequires,ismissing.Itispossiblethatyoudidn'tuploadyourapplicationfilescorrectly.Pleasecheckwhetherallyourapplicationfilesa

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|