草庐IT

header拦截插件

全部标签

ruby - 如何拦截 ruby​​ 中的方法调用?

我目前有一个父类(superclass),它有一个函数,我希望所有子类在它的每个函数中调用该函数。该函数的行为应该像rails中的before_filter函数,但我不确定如何去实现before_filter。这是一个例子classSuperclassdefbefore_each_methodputs"BeforeMethod"#thisissupposedtobeinvokedbyeachextendingclass'methodendendclassSubclass 最佳答案 这是一种方法:classSuperclassdefb

Ruby 插件架构

我想要一个非常基本的小型基础程序示例,它读入两个插件并注册它们。这两个插件以相同的方式以不冲突的方式挂接到基础程序。就此而言,我对任何编程语言的元编程都很陌生,我不确定从哪里开始。 最佳答案 我已经研究这个问题一段时间了。我尝试了很多不同的方法来做这件事,并征求了很多人的建议。我仍然不确定我所拥有的是否是“正确的方法”,但它运作良好并且很容易做到。在我的例子中,我专门查看配置并引入配置插件,但原理是相同的,即使我的术语特定于cnfiguration。在非常基础的层面上,我有一个配置类,里面什么都没有——它是空的。我还有一个Confi

ruby - 什么是 X-Cascade header

Rackdocumentation说FileserverssupportX-Cascadeheaderrack-mount说Rack::MountsupportsRack’s+X-Cascade+convention什么是X-Cascade?我找不到有关X-Cascade的任何文档。 最佳答案 服务器会将X-Cascadeheader设置为“pass”继续尝试其他路由。这允许嵌套/堆叠多个路由。这样做的一般目的是将请求传递给其他中间件以在该特定处理程序不处理请求时处理请求。 关于ruby

ruby - 我可以禁用 ruby​​ 记录器的日志 header 吗?

我目前遇到了一些问题。您可能知道,ruby记录器会在每个新创建的日志文件的顶部添加一个记录header。"#Logfilecreatedon%sby%s\n"%[Time.now.to_s,Logger::ProgName]我正在记录CSV文件以便稍后将它们导入仓库,通常我只是跳过带有标题的第一行。记录器中似乎存在错误,因为有时日志记录header出现不止一次,就在日志文件的中间。所以我决定简单地离开那个标题。令我惊讶的是,我没有发现任何可以在创建记录器时通过的论据。我想到了这样的事情:Logger.new"info.log",:skip_header=>true但它就是不存在。我搜索

ruby-on-rails - 将 header 附加到 Rspec Controller 测试

我正在尝试为我的Controller编写测试,该Controller接收来自外部服务的请求。到目前为止,这是我的测试:describeApplyControllerdocontext'whenvalid'dolet(:parameters)dofile=File.joinFile.dirname(__FILE__),'..','samples','Indeed.json'JSON.parse(File.readfile)endlet(:signature){'GC02UVj0d4bqa5peNFHdPQAZ2BI='}subject(:response){post:indeed,par

ruby - Sinatra 请求 ["SOME_HEADER"] 不适用于 POST;文档错误?

Sinatra自述文件says:request["SOME_HEADER"]#valueofSOME_HEADERheader鉴于此应用:require'sinatra'post'/env'doenv['HTTP_X_FOO']endpost'/request'dorequest['X-Foo']endpost'/request_rack_http_format'dorequest['HTTP_X_FOO']end第一个规范通过;接下来的两个失败:describe"Sinatrashouldplacetheheaderin"dobefore(:all)doheader'X-Foo','

ruby - Vim 的 Ruby 插件问题

我刚刚安装了Vim,每当我打开ruby​​文件时,我都会遇到这些错误:ErrordetectedwhileprocessingC:\Programfiles(x86)\Vim\vimfiles\ftplugin\ruby.vimline:76Encoding::ConverterNotFoundError:codeconverternotfound(UTF-16LEtoASCII-8bit)line:93E121:Undefinedvaraible:s:ruby_pathE15:Invalidexpression:s:ruby_pathline:76NameError:uninitia

ruby - 无需插件即可在 Jekyll 中生成站点地图

我刚刚将我的整个博客从WordPress转移到了Jekyll。还有一些地方需要修复,但我现在正面临这个问题。我无法在Jekyll中生成站点地图。我看到有几个插件可以为我完成这项工作。网站信息:通过Github页面托管的网站整个网站都是手工编码的——不使用JB或Octopress如果您能得到一些有关如何执行所需操作的指示,那就太好了。注意:这个问题与之前的问题不同。我不是在寻找使用_site的选项。 最佳答案 正如JohnDay所解释的那样在thisarticle,您可以在站点的根目录中创建一个包含以下内容的sitemap.xml文件

ruby-on-rails - 在 Rails 4 中显示或获取 HTTP header 属性

我有一个用Rails开发的应用程序,我想查看HTTPheader中的属性。有没有办法读取这些属性?它们存储在哪里?有人提到了request.headers。这样对吗?我看不到此数组中的任何属性。 最佳答案 request.headers不返回散列,而是返回ActionDispatch::Http::Headers的实例,它是rackenv的包装器。ActionDispatch::Http::Headers实现了很多方法,比如[]和[]=,这使得它表现得像一个散列,但是它不会覆盖默认的inspect,因此您无法仅通过p或pp查看键值对

ruby-on-rails - 在 rails 插件之外无法访问 ActionCable channel

我正在尝试创建一个公开ActionCablechannel的gem,但我无法让它工作。这是我的宝贝#lib/my_channel.rbclassMyChannel然后我将gem添加到我的主要应用程序Gemfile,运行bundleinstall,启动控制台并运行MyChannel。没有屈服和错误,这意味着channel已正确包含。然后我将其添加到我的主应用程序//application.jsvarsocket="ws://localhost:3000/cable";varcable=ActionCable.createConsumer(socket);cable.subscriptio