草庐IT

教你编写SQLMap的Tamper脚本过狗

全部标签

ruby - Ruby 的 stdlib Logger 类能否安全地处理来自多个进程的编写器?

我正在开发一个需要进行日志记录的Ruby库。理想情况下,我希望多个工作进程能够登录同一个文件。查看来自Ruby标准库的Logger类的源代码,我看到努力从多个线程同步写入日志(正如对IsRuby'sstdlibLoggerclassthread-safe?的回答中所指出的)。当多个进程写入同一个日志文件时,似乎存在类似的问题:根据底层决定缓冲/拆分写入的方式,每个日志消息可能无法保持其完整性。那么,有没有一种方法可以使用标准的Logger类来允许多个进程安全地记录到一个文件中?如果不是,这在Ruby项目中通常是如何完成的?这就是我所说的“安全”的意思:每个日志行都是“原子的”——在下一

ruby - 在 Ruby 中为 REST API 编写单元测试

我已经使用sinatra编写了一个基本的RESTAPI。有谁知道为它编写测试的最佳方法吗?我想使用Ruby来做到这一点。我已经使用curl完成了初步测试。但我想做一些更强大的事情。这是我的第一个API-有什么我应该测试的具体内容吗? 最佳答案 最好的方式见仁见智:)就我个人而言,我喜欢简单干净。使用像minitest这样的工具,Watir和rest-client,您可以对REST界面进行非常简单的测试,并通过实际浏览器(支持所有主要浏览器)测试您的Web服务。#!/usr/bin/ruby##Requiresthatyouhavei

ruby-on-rails - 编写 gem 时如何测试虚拟 Rails 应用程序?

我正在编写一个与Rails集成的gem,我希望能够在我的gem的测试套件中使用rspec测试一个虚拟应用程序。当我测试我的虚拟rails应用程序是否通过加载/几个模块时,问题出现了rspec规范/integration/rails/load_path_spec.rb到目前为止,这是我所拥有的:#spec/support/rails_app/config/environment.rb#LoadtheRailsapplication.requireFile.expand_path('../application',__FILE__)#Loadthegemrequire'skinny_con

ruby - 如何从 ruby​​ 脚本中引用本地 gem?

我需要从一个普通的ruby​​脚本中引用一个本地gem,而不需要安装gem。追踪Howtoreferalocalgeminruby?,我尝试使用以下设置创建一个Gemfile:%w(custom_gemanother_custom_gem).eachdo|dependency|gemdependency,:path=>File.expand_path("../../#{dependency}",__FILE__)end脚本如下所示:require'custom_gem'CustomGem::Do.something当我执行此操作时:bundleexecrubyscript.rb我得到:

ruby - CSV 到 JSON Ruby 脚本?

有谁知道如何编写将csv文件转换为json文件的Ruby脚本?CSV格式如下:Canon,DigitalIXUS70,"Epic,Epic100",3x,Yes(lockable),Yes(lockable),YesCanon,DigitalIXUS75,"Epic,Epic100",3x,Yes(lockable),Yes(lockable),YesCanon,DigitalIXUS80,"Epic,Epic100",3x,Yes(lockable),Yes(lockable),YesJSON需要产生这样的结果:{"aaData":[["Canon","DigitalIXUS70",

ruby - 将ruby脚本编译成exe?

是否可以在Windows上将ruby​​脚本编译成.exe文件?我到处搜索并尝试了以下方法(看起来RubyScript2EXE、Shoes和Crate似乎都死了或被遗弃了。):http://ocra.rubyforge.org/http://exerb.sourceforge.jp/index.en.html我在Windows7Ultimate(64位)上使用Ruby1.8.7从一个干净的系统我这样做:从ruby​​installer.org安装RubyInstaller1.8.7-p358gem安装watirgem安装ocragitclonegit://github.com/snau

ruby - 编写 gem 时设置配置设置

我正在编写一个gem,我想在有和没有Rails环境的情况下工作。我有一个Configuration类来允许配置gem:moduleNameCheckerclassConfigurationattr_accessor:api_key,:log_leveldefinitializeself.api_key=nilself.log_level='info'endendclass现在可以这样使用了:NameChecker.configuredo|config|config.api_key='dfskljkf'end但是,我似乎无法通过gem中的其他类访问我的配置变量。例如,当我像这样在spec

ruby - RSpec:如何编写一个期望特定输出但不关心方法的测试?

我正在努力了解测试驱动设计,特别是RSpec。但是我在使用TheRSpecBook中的一些示例时遇到了问题。在本书中,我们像这样测试$STDOUT上的输出:output=double('output')game=Game.newoutput.should_receive(:puts).with('WelcometoCodebreaker!')game.start()好吧,这在时尚之后起作用。但是我到底为什么要关心Game对象是否使用puts()方法呢?如果我把它改成print(),它真的会破坏测试吗?而且,更重要的是,这是否违背了TDD的一项原则——我应该测试方法的作用(设计)而不是它

ruby-on-rails - rails 3 中的脚本/运行器

我有2个作业要运行,它们依赖于我的Rails应用程序中的模型。我将ruby​​文件添加到一个名为Jobs的单独文件夹中,我已将其附加到rail项目。每当我尝试通过ruby​​命令运行它们时,我都会收到以下错误:uninitializedconstantFeedback(NameError).这里的反馈是我在我的Rails应用程序中使用的模型。我的问题:因为我正在使用的作业实际上与Rails2的脚本/运行程序命令兼容,所以Rails3有替代方案吗?如果不是,我如何编写依赖于我在Rails应用程序中的模型的ruby​​程序,而不会出现我上面提到的错误。 最佳答案

ruby - 在脚本中安装 gem 后,如何加载 gem?

我正在编写一个小的Ruby脚本,用于在本地机器上自动准备开发环境。因为我不能确定rubyzip2库是否存在于所有机器上,所以我让脚本在需要时安装它。目前,我的脚本正在执行以下操作:beginrequire'zip/zip'rescueLoadErrorsystem("geminstallrubyzip2")end一旦安装了gem,脚本就会继续执行;但是,gem尚未加载,因此所有需要rubyzip2的代码都会停止执行。如何将gem加载到内存中,以便脚本可以在安装后继续运行? 最佳答案 与其执行require'thegem'并挽救错误,