草庐IT

match_first

全部标签

ruby 可枚举 : first truthy value of a block

在ruby​​中我们可以这样做:stuff_in_trash.detect(&:eatable?)=>:pack_of_peanutsstuff_in_trash.detect(&:drinkable?)=>nil但是,如果我们对block第一次为真时的值感兴趣,而不是block为其取真值的第一个项目感兴趣怎么办?也就是转换如下代码:deftry_to_make_artwork_from(enumerable)enumerable.eachdo|item|result=make_artwork_fromitemreturnresultifresultendnilend类似于:deftr

Ruby+Anemone 网络爬虫 : regex to match URLs ending in a series of digits

假设我正在尝试抓取一个网站并跳过这样结束的页面:http://HIDDENWEBSITE.com/anonimize/index.php?page=press_and_news&subpage=20060117我目前正在使用Ruby中的Anemonegem来构建爬虫。我正在使用skip_links_like方法,但我的模式似乎永远不匹配。我试图使它尽可能通用,因此它不依赖于子页面,而仅依赖于=2105925(数字)。我已经尝试过/=\d+$/和/\?.*\d+$/但它似乎没有用。这类似于Skippingweb-pageswithextensionpdf,zipfromcrawlingi

Ruby 枚举 : Taken first n where block returns true

我想取前“n”个通过该block的条目a=1..100_000_000#Basicallyalongarray#Thisiteratesoverthewholearray--nogoodb=a.select{|x|x.expensive_operation?}.take(n)一旦我得到n个“昂贵”条件为真的条目,我想缩短迭代。你有什么建议?take_while并保持计数n?#Thisisthecodeihave;whichithinkcanbewrittenbetter,buthow?a=1..100_000_000#Basicallyalongarrayn=20i=0b=a.take

ruby 正则表达式 : match any . css 文件名不以下划线开头,在任何字符串之前

我想弄清楚如何匹配任何.css文件名,而不是以下划线开头,在任何字符串之前。我从这个关于stackoverflow的问题(ActiveAdminassetsprecompileerror)中找到了一个很好的起点:[/^[^_]\w+\.(css|css.scss)$/]但是,此正则表达式仅匹配不带下划线的filename.css。我想要一个正则表达式来匹配文件名前的任何路径,不带下划线。以下字符串应匹配:mystyle.cssapplication.css.scss/assets/stylesheets/application.css但以下字符串不应匹配:_mystyle.css_ap

ruby 哈希 : return the first key value under which is not nil

假设我有一个散列hash={a:1,b:false,c:nil}&某处的一系列键:[:c,:b,:a]。在!=nil下返回这样的键值是否有Ruby惯用语?目标[:c,:b,:a].select{|key|hash[key]!=nil}.first#returns:b似乎太长了。 最佳答案 我认为Enumerable#find可能有效:find(ifnone=nil){|obj|block}→objornilfind(ifnone=nil)→an_enumeratorPasseseachentryinenumtoblock.Retur

Ruby RegEx/pattern-match 用于精确的单词/字符串匹配

有一个简单的问题:我有一个这样的文件:ip-10-0-12-84.eu-west-1.compute.internal,master,instnum=1,Running..........ip-10-0-26-118.eu-west-1.compute.internal,master_rabbit,instnum=4,Runningip-10-0-26-116.eu-west-1.compute.internal,master_rabbit,instnum=5,Running.....ip-10-0-26-68.eu-west-1.compute.internal,sql_master

ruby - 如何区分由 first_or_create 搜索或创建的

我想区分由first_or_create搜索或创建。record=MasterRecord.where(:name=>'test_data').firest_or_create#andiwantdifferentiatesearchedorcreatedlikethis.#butthereisnocreated_record?methodifrecord.created_record?render:status=>200,:json=>record.to_jsonelserender:status=>409,:json=>record.to_jsonend我该怎么做?

ruby-on-rails - 更新方法 "No route matches [POST]"

在使用以下ruby​​onrails代码片段时遇到了一些麻烦-我有书并且想更新书名,这是我尝试这样做的方法:Editthebook""Name这就是我在booksController中所做的:defedit@book=Book.find(params[:id])enddefupdate@book=Book.find(params[:id])if@book.update_attributes(params[:book])redirect_to:action=>'show',id=>@bookelse@subjects=Subject.find(:all)render:action=>'e

ruby-on-rails - 在 ActiveRecord 中使用 first_or_create 的两种不同方式的区别

我是ActiveRecord的新手,所以这可能是一个愚蠢的问题:我的方法是这样写的:sample_organizations=['37Signals','FogCreek']sample_organizations.each{|item|Organization.first_or_create(name:item,time_zone:'Central')}它没有用,我希望它能遍历我的组织数组并将它们全部插入到数据库中,但它只插入了第一行。然后有人建议像这样更改它并且这个方法有效,但我想知道是否有人可以解释第一种方法中的错误,以便我可以了解我在做什么/假设错误。所以这个有效:sample

ruby - 鲁弗斯调度程序 : run every x seconds with first run immediately

我正在使用rufus调度程序让一些任务每隔一段时间执行一次。我希望任务在脚本启动时或多或少地立即运行,然后以给定的时间间隔运行。这似乎不受API支持,还是我遗漏了什么?我已将0.1秒指定为第一次运行之前的延迟,如下所示scheduler=Rufus::Scheduler.newscheduler.every'10s',:first_in=>0.1do#dosomeworkend如果:first_in属性设置为0,调度程序会在第一次运行之前等待整整10秒。如果值设置得太低(我想在执行任务时评估过去的值),或者如果我使用Time.now,则会引发以下错误:~/.ruby/gems/rufu