草庐IT

default-rack

全部标签

ruby - 我可以在请求处理程序之外获取我的 Rack 服务的基本 URL 吗?

我希望能够从我的config.ru中的Rack初始化代码中检索我的网络应用程序的基本URL。类似的东西:puts"Startinguponhttp://#{ENV['SERVER_NAME']}:#{ENV['SERVER_PORT']}/#{ENV['MOUNT_POINT']}..."但我还没有发现任何类似这样的东西可以从请求处理程序外部获得。显然,我可以这样做:...defgetputs"Gotarequestfor#{ENV['rack.url_scheme']}://#{ENV['HTTP_HOST']}#{ENV['REQUEST_PATH']}"...因为请求是在那个时候

ruby - 从 Rack 应用程序提供非公共(public)二进制文件

我正在制作一个简单的Rack应用程序,在身份验证后授予对protected文件的访问权限。由于文件中的数据是敏感的,因此它们位于应用程序的非公共(public)文件夹中。目前,在检查session数据后,我只是打开文件进行读取并将内容作为响应的主体发送。感觉很难看,而且对于较大的文件来说肯定非常耗费资源。示例响应:["200",{"Content-Type"=>MIME::Types.type_for(file).first.to_s},File.open(file).read()]我调查了Rack::Sendfile,但据我了解,它是一个中间件,不能从应用程序本身内部发送文件。从Ra

ruby - 在 Chef 的提供者的 default.rb 中使用 File::read

我正在尝试创建一个LWRP,它将调用在其自身中定义的资源。我的Recipe结构如下:在机器Recipe的提供者中,我有如下代码片段:require'chef/provisioning'#driverforcreatingmachinesrequire'::File'defget_environment_json@@environment_template=JSON.parse(File::read(new_resource.template_path+"environment.json"))return@@environment_templateend代码只是试图读取一个json文件,

ruby - 如何在 Rack::Builder::map 中使用 Lotus 路由器

有没有办法一起使用map和(莲花)路由器命名空间?下面是一个示例config.ru我正在尝试作为演示运行。require'bundler'Bundler.requiremoduleDemoclassApplicationdefinitialize@app=Rack::Builder.newdomap'/this_works'dorunProc.new{|env|[200,{"Content-Type"=>"text/html"},["this_works"]]}endmap'/api'dorunLotus::Router.newdoget'/api/',to:->(env){[200,

c++ - "= default"析构函数和空析构函数有什么区别?

我想阻止我的类的用户将它用作自动变量,所以我编写了这样的代码:classA{private:~A()=default;};intmain(){Aa;}我希望代码不会被编译,但是g++编译它没有错误。但是,当我将代码更改为:classA{private:~A(){}};intmain(){Aa;}现在,g++给出了~A()是私有(private)的错误,正如我所期望的那样。“=default”析构函数和空析构函数有什么区别? 最佳答案 您的第一个示例不应编译。这表示它确实编译的编译器中的一个错误。此错误已在gcc4.9及更高版本中修复

c++ - "= default"析构函数和空析构函数有什么区别?

我想阻止我的类的用户将它用作自动变量,所以我编写了这样的代码:classA{private:~A()=default;};intmain(){Aa;}我希望代码不会被编译,但是g++编译它没有错误。但是,当我将代码更改为:classA{private:~A(){}};intmain(){Aa;}现在,g++给出了~A()是私有(private)的错误,正如我所期望的那样。“=default”析构函数和空析构函数有什么区别? 最佳答案 您的第一个示例不应编译。这表示它确实编译的编译器中的一个错误。此错误已在gcc4.9及更高版本中修复

ruby - 您已经激活了 rack 1.3.2,但是您的 Gemfile 需要 rack 1.2.3。考虑使用 bundle exec

我在尝试运行我的应用程序时遇到了问题:Youhavealreadyactivatedrack1.3.2,butyourGemfilerequiresrack1.2.3.Considerusingbundleexec.我读了很多关于这种错误的资料,但我没有找到适合我的解决方案我已经按照建议删除了我的Gemfile.lock并重新运行包here我已经在使用最新版本的passenger(3.0.8)-按照建议herebundleexecrake技巧不能用于我的情况谢谢你提前 最佳答案 运行bundleinstall--binstubs,您

Ruby gem LoadError - ruby​​gems/defaults/operating_system

我已经在我的winxpsp3机器上安装了ruby​​1.8.6p368和gems1.3.4以及所需的库,如zlib、ssl或readline。问题是,当我现在尝试使用一些gem时,出现以下错误:Exception`LoadError'atD:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1112-nosuchfiletoload--rubygems/defaults/operating_systemException`LoadError'atD:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.

ruby-on-rails - 为什么 Rails 测试环境中的 rack env hash 为空?

在我的Rails应用程序中,我在我的一个Controller操作中访问env哈希。类似的东西:defmy_before_filterenv['some.key']="Somethingorother"end这非常适合我的要求。如果我在测试环境中启动我的Rails应用程序,并访问如下操作:#/usersinUsersController#indexdefindexputsenv.inspectend然后envhash的内容就如预期的输出到控制台了。当我从RSPec示例中获取此操作时,输出是一个空散列?it'shouldgettheindexaction'doget:indexend...

ruby - 无法加载此类文件 -- rack/handler/puma

我的设置和错误当我使用rackup和puma启动我的Sinatra应用程序时出现错误。我的config.ru文件如下所示:#\-spumarequire'./controller/main.rb'runSinatra::Application所以当我现在使用rackup时,我得到了这个错误:/home/username/.rvm/gems/ruby-1.9.3-p392/gems/rack-1.5.2/lib/rack/handler.rb:76:in`require':cannotloadsuchfile--rack/handler/puma(LoadError)我使用ruby​​1