如何使用rspec在ruby中模拟super?

我通过创建一个扩展到库类的子类来扩展现有的库。 在子类中,我能够在initialize方法中测试大多数function,但无法模拟super调用。 子类看起来像下面的东西。 class Child < SomeLibrary def initialize(arg) validate_arg(arg) do_something super(arg) end def validate_arg(arg) # do the validation end def do_something @setup = true end end 如何编写rspec测试(使用mocha)以便我可以模拟super调用? 请注意,我正在测试Child类中initialize方法的function。 我是否必须创建单独的代码路径,在提供额外参数时不会调用super ?

如何用数字求和完整的字符串?

我怎样才能保存数字 这是我的表: |products| int varchar(10) |id| |num_product| 1 0040 |customers| int varchar(255) |id| |name| |state| 1 ABC 0 2 DEF 0 3 GHI 0 4 JKL 1 这是控制器: def new @customer = Customer.find(params[:id]) @num= Product.first @other_value = Customer.count(:conditions=>[‘state=0’]) end 这是我的观点: 但它返回00403而不是0043 。 我尝试了这个但是我得到的是没有00 403 : 我也试过这个,但不是正确的方法: 有人可以帮我这个吗?

在Ant build.xml中使用Compass编译SASS

有谁知道如何使用JRuby和Compass模块在build.xml中编译SASS(* .scss)文件? 我可以在sass独立安装中使用Sass :: Exec模块,以下列方式从* .scss编译为* .css: 但是,这并没有给我Compass框架的强大function。 我下载了指南针gem独立,我想使用其中一个Compass Ruby模块用以下内容替换Ant build.xml中的上述代码: 有人做过这个吗?

如何命名其类名具有数字的Rails ruby​​文件?

Rails类名称可以包含数字吗? 例如: class Test123 end 这是一个有效的课程吗? 当我尝试加载类时,我得到一个uninitialized constant Test123错误。

是否可以增强rake测试任务并将测试结果合并在一起?

我正在为我的sidekiq工人编写测试,我希望他们在终端输入“rake”时运行。 我有这个工作 – 我将以下内容添加到我的Rakefile中: namespace :test do Rake::TestTask.new(:workers) do |t| t.libs << "test" t.pattern = 'test/workers/**/*_test.rb' end end Rake::Task[:test].enhance ["test:workers"] 当我运行rake时,我得到这样的东西作为我的输出: Run options: –seed 51172 # Running tests: SS Finished tests in 0.005594s, 357.5259 tests/s, 0.0000 assertions/s. 2 tests, 0 assertions, 0 failures, 0 errors, 2 skips Run options: –seed 17561 # Running tests: S……………………………………..SSSS..SSSSS…… […]

ruby正则表达式和分组

我有跟随文本’some-text-here’并尝试使用组从中获取’text’字样。 如果我使用那个表达式/some-(\w+)-here/ all工作正常,但是如果我尝试对它进行分组/some-(?\w+)-here/它会引发错误Undefined (?…) sequence. 我做错了什么? (Ruby 1.9.2) 更新:对我感到羞耻。 这完全取决于我的经营权。 是的,我使用RVM,我的ruby版本打开了1.9.2。 但我已经在http://rubular.com/上测试了这个表达式,它是Rubular runs on Ruby 1.8.7的页脚Rubular runs on Ruby 1.8.7 。 Ruby 1.8.7和Ruby 1.9.2有一个不同的正则表达式引擎。 所以我的表达式适用于1.9.2,但不适用于1.8.7

Ruby grep与行号

使用Ruby的Enumerable#grep方法获取匹配行与行号的最佳方法是什么。 (因为我们使用-n或–line-number开关使用grep命令)。

仍然很难使用RoR MVC方法

我认为应该公正地陈述我认为我所知道的以及我所做的事情: 1)我创建了应用程序并完成了我的第一次数据库迁移; 我知道有我的开发,测试和生产数据库。 dev db有一个名为’wines’的表。 2)我制作了一个创建必要文件的脚手架。 3)设置基本索引/更新/销毁方法,我可以浏览页面。 4)从我收集的内容,ActiveRecord类“Wine”自动从数据库inheritance属性? 每列都是一个属性,表’wines’中的每一行都是一个可能实例化的对象,可以从wine_controller脚本中调用。 我现在遇到的问题是我想创建一个所有控制器都使用的通用布局。 唯一会改变的是页面标题,标题中可能包含一些标记,属性(最有可能是javascript onload事件)以及标记内的任何内容。 我发现自己正在寻找能够做我想做的function(比如“favicon_link_tag”,“stylesheet_link_tag”和“auto_discovery_link_tag”……)但是找不到合适的地方给他们! 我知道这与我对如何执行/inheritance事物缺乏了解有关。 例如,如果我在application_controller.rb中声明@pageTitle并在ApplicationHelper中使用@pageTitle它将无法工作。 甚至在application_controller.rb中使用“stylesheet_link_tag”会引发错误。 我只是没有得到什么。 每个事物在时间执行,范围等方面与另一个事物有什么关系?

如何将以前的外部ruby脚本集成到Rails应用程序中并从rake任务中调用它们?

我有一些我在Rails 3.1.x应用程序之外编写的其他脚本,但现在是时候直接从Rails应用程序的数据库中提取数据而不是利用一些数据导出。 为此,我想将脚本集成到我的rails应用程序中。 到目前为止,我已根据模型中的方法运行rake任务,例如在我的lib/taks/app.rake : desc “Does something.” task :do_some_things => :environment do ModelName.some_method ModelName.another_method end 如果我将我的脚本基本上放到lib中,我是否可以从rake任务中调用它们? 或者我需要在模型中require lib/my_script.rb的调用方法吗? 我试图写一个这样的任务: task :run_me => :environment do `bundle exec lib/script.rb` end 然后,当这执行并且我在该script.rb(require’lib require ‘lib/another_script.rb’ )中有一个require ,我最终得到“无法加载此类文件”错误。 我现在显然是以错误的方式接近这个。 好像我应该在rake任务中简单地进行一个方法调用,然后调用/ lib或其他地方的支持脚本(在哪里最合适)。

什么是X-Cascade标头

Rack文档说明了这一点 File servers support X-Cascade header 机架安装说 Rack::Mount supports Rack’s +X-Cascade+ convention 什么是X-Cascade? 我在X-Cascade上找不到任何文档。