草庐IT

some-lib-release

全部标签

ruby-on-rails - 相当于 ruby​​/rails 中的 Array.some

我想在rails中做Array.some的等价物。这是一个应用于我的用例的示例,它是一种更复杂的include?(我想将其应用于*args):ary=[:a,:b,:c,d::x,e::y]#=>[:a,:b,:c,{:d=>:x,:e=>:y}]search=:econtained=ary.some{|x|x==search||x.try(:key?,search)}#=>trueassertcontained,"Weshouldhavefound#{search}"我可以用ary.map来做到这一点,但这意味着遍历整个数组然后再次测试它的内容。我还可以使用ary.drop_whil

ruby-on-rails - Rails Engines : When to put code in app, 何时在 lib 中,何时在 vendor 文件夹中?

我正在开发一个Rails引擎,所以我对现有引擎进行了一些研究。我注意到他们中的许多人在app中都有文件,但也在lib和vendor中。我很清楚,我应该将任何应该由主机应用程序替换的代码放入app文件夹中(例如,当有一个模型app/user.rb,主机应用程序可以很容易地拥有自己的app/user.rb文件并使用这个而不是引擎的)。但我不确定,何时必须将内容放入lib,何时放入vendor?我想,在vendor中,我应该只放置我想在我的项目中使用的来自其他开发人员或项目的“外部”代码,而在lib中,我放置我的拥有我在项目中实际使用的其他库。但是,例如,为什么WiceGrid将内容放入其w

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 - 为什么 Ruby/[[ :punct:]]/miss some punctuation characters?

ruby/[[:punct:]]/应该匹配所有“标点字符”。根据Wikipedia,这意味着/[\]\[!"#$%&'()*+,./:;?@\^_`{|}~-]/根据POSIX标准。匹配:-[]\;',./!@#%&*()_{}::"?.但是,它不匹配:=`~$^+|(至少在ruby​​1.9.3p194中是这样)。什么给了? 最佳答案 标点字符类由语言环境定义。公开组LC_TYPEdefinitionforpunct说:Definecharacterstobeclassifiedaspunctuationcharacters.In

ruby-on-rails - 在 RSpec 中使用 Ruby 1.9.2 需要 lib 带来 "no such file to load"

我正在尝试将我的一个Rails项目升级到Ruby1.9.2。一切进展顺利,但一个RSpec测试失败了。在这个测试中,我需要一个Rubylib:#filespec/models/my_lib_spec.rbrequire'spec_helper'require'lib/services/my_lib'describe"MyLib"doit"shoulddosomething"do...库看起来像这样:#filelib/services/my_lib.rbclassMyLibdefself.do_something...在Ruby1.8.7(REE)中测试运行良好:$ruby-vruby1

ruby - 如何使用 lib minitest 或 Test :Unit? 为单元测试着色

我想在我的开发环境中进行单元测试输出颜色。但是,我无法让它在Linux(Debian和Ubuntu)上运行。当我包含以下库时:require'minitest/autorun'require'minitest/unit'require'minitest/pride'我得到:/usr/local/rvm/gems/ruby-1.9.2-p136/gems/minitest-2.3.1/lib/minitest/pride.rb:35:in`':undefinedmethod`output'forMiniTest::Unit:Class(NoMethodError)由代码引起:MiniTe

ruby-on-rails - ruby rails : Converting "SomeWordHere" to "some word here"

我知道你可以这样做:"SomeWordHere".underscore.gsub("_","")得到“这里的一些话”。我认为对于如此简单的事情来说可能有点太多了。是否有更有效的方法(也许是内置方法?)将“SomeWordHere”转换为“此处的某个词”? 最佳答案 方法underscore和humanize是为表、类/包名称等之间的转换而设计的,您最好使用自己的代码进行替换以避免惊喜。查看评论。"SomeWordHere".underscore=>"some_word_here""SomeWordHere".underscore.h

ruby-on-rails - 如何从任何地方获取一些 lib 文件

我会解释我的情况。这是我的Rails应用程序中的文件树:lib/my_module.rbrequire'my_module/my_file'moduleMy_moduleendlib/my_module/my_file.rbclassTweetag::Collector(...)end我制作了一个ruby​​脚本,我把它放在config/jobs/我真的不明白我应该如何在这个文件中要求文件my_file.rb。require'../../my_module/my_file.rb'它给了我`require':cannotloadsuchfile同样的错误只需要'my_module',这是

ruby -v dyld : Library not loaded:/usr/local/lib/libgmp. 10.dylib

我一直在尝试在终端中运行脚本,每次我都会得到:$rubydirectory.rbdyld:Librarynotloaded:/usr/local/lib/libgmp.10.dylibReferencedfrom:/Users/claretrembath/.rvm/rubies/ruby-2.1.3/bin/rubyReason:imagenotfoundTrace/BPTtrap:5我意识到在检查ruby-v时我得到了相同的输出:$ruby-vdyld:Librarynotloaded:/usr/local/lib/libgmp.10.dylibReferencedfrom:/Use

ruby - 将行追加到 csv 文件 Ruby 1.9 CSV lib

使用Ruby1.9和CSV库,我似乎无法追加一行。文档中的示例打开文件并覆盖该行。将行附加到文档的正确方法是什么?文档中的示例:require'csv'CSV.open("path/to/file.csv","wb")do|csv|csv 最佳答案 我想你可以改变open来使用ab:CSV.open("t.csv","ab")do|csv| 关于ruby-将行追加到csv文件Ruby1.9CSVlib,我们在StackOverflow上找到一个类似的问题: h