草庐IT

c++ - 条件随机场

全部标签

ruby - 可能用三元运算符表达条件 HAML

试图想出一种更紧凑的方式来在HAML和Ruby中表达这个条件,也许使用三元运算符:-if@page.nil?%br(nothingyet)-else%br#{@page.name}(根据NeatwaytoconditionallytestwhethertoaddaclassinHAMLtemplate寻找类似的方法)您的帮助将不胜感激:) 最佳答案 您的代码使文本成为的子元素元素;这是不可取的。我认为,您真正的意思是:%br-if@page.nil?(nothingyet)-else#{@page.name}为此你可以简单地做:%b

ruby - 从数组中查找符合条件的前 n 个元素

我想选择一个数组中符合特定条件的前10个元素,而不必遍历整个数组。我知道find给我第一个元素。例如,下面的代码给出了第一个大于100的素数:require'prime'putsPrime.find{|p|p>100}#=>101有没有办法得到前10个大于100的素数? 最佳答案 在Ruby2.0+中你可以这样写:require'prime'Prime.lazy.select{|p|p>100}.take(10).to_a#=>[101,103,107,109,113,127,131,137,139,149]

ruby - 有条件地测试是否在 HAML 模板中添加类的好方法

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:AppendclassifconditionistrueinHaml(withRails)我使用的模板允许您将列表项标记为current(使用class=current),并在导航栏中突出显示它。在HAML中,这看起来像:%li.currentMenuitemA%liMenuitemB%liMenuitemC我在SinatraView中有此代码,并希望以编程方式添加class=current,具体取决于View的参数。如何以尽可能简洁的方式执行此操作?目前,我是这样做的:-ifsection=="pages"

ruby - 负随机数

我知道如何使用Rails生成数字,但我不知道如何生成负数?prng.rand(1..6)forrandomof[1,2,3,4,5,6]Randomdoc说你会得到一个ArgumentError。 最佳答案 假设您想生成一个介于a和b之间的数字,您始终可以使用以下公式来实现:randomNum=(b-a)*prng.rand+a因此,如果您想要一个介于-8和+7之间的数字,那么a=-8和b=7,您的代码将是randomNum=(7-(-8))*prng.rand+(-8)相当于randomNum=15*prng.rand-8

ruby - 随机生成测试数据是一种不好的做法吗?

自从我开始使用rspec以来,我就对固定装置的概念产生了疑问。我主要关心的是:我使用测试来揭示令人惊讶的行为。我并不总是足够聪明,可以为我正在测试的示例列举所有可能的边缘情况。使用硬编码的固定装置似乎有局限性,因为它只在我想象的非常具体的情况下测试我的代码。(诚​​然,我的想象力也限制了我测试的案例。)我使用测试作为代码文档的一种形式。如果我有硬编码的fixture值,就很难揭示特定测试试图展示的内容。例如:describeItemdodescribe'#most_expensive'doit'shouldreturnthemostexpensiveitem'doItem.most_e

ruby - Ruby Gemspec 中的条件依赖

我正在构建一个需要安装jsongem才能运行的gem。哪个jsongem并不重要:json_pure、json-jruby或基于C的json。是否有在gemspec中定义它的好方法?Thisresponse建议为每个版本维护一个完全独立的gem,但似乎必须有更好的方法。有人有这方面的经验吗?我应该只使用spec.requirements吗?通知用户他/她需要jsongem的选项? 最佳答案 是的,我会在spec.requirements中建议一个简单的文本要求。我还建议在gem首次加载时进行某种加载链接:#ininit.rband/

ruby - gemspec 中的条件 ruby​​ gem 依赖项

我正在构建一个在迁移中使用外键的Rails引擎。add_foreign_key"theblog_content_nodes","theblog_content_statuses",column::content_status_id从4.2版本开始,rails本身就支持外键,但在我们为此使用foreignergem之前。如果我们尝试将foreigner与rails4.2及更新版本一起使用,我们会收到错误消息。因为我要从4.0.1开始支持Rails,所以我必须在我的gemspec中使用条件依赖。我找到了可能的解决方案here但我不知道如何在gemspec中检查rails版本。#sideki

ruby - cucumber 、 capybara 和 Selenium 随机工作

使用cucumber、capybara和Selenium进行设置,但某些场景只能随机运行。正在运行rvm上的ruby1.8.6导轨2.3.8selenium弹出firefox3.6我试图添加这个但没有运气:with_scope(selector)doclick_button(button)selenium.wait_for_page_to_loadend错误输出有时是:>GivenIamloggedinandhavecreatednewsletterandsubscribers#features/step_definitions/newsletter_send_steps.rb:108

c - Ruby 的最大函数顺序如何重复?

我一直在看maxmethod在Ruby的Enumerable混合(v2.4.1)。这是一个相当简单的方法,但是当存在重复项时它如何排序项目有点令人困惑。例如:x=[1,2,3,4,5,6,7,8,9]x.max{|a,b|a%2b%2}=>110.times{|y|px.max(y){|a,b|a%2b%2}}[][1][1,7]#whyis7thenextelementafter1?[3,1,5]#whynomore7?[7,3,1,5]#7isnowfirst[9,7,3,1,5][9,7,3,1,5,6][9,7,3,1,5,4,6][9,7,3,1,5,2,4,6][9,7,5

ruby - 随机采样数组的唯一子集

如果我有一个数组:a=[1,2,3]如何随机选择数组的子集,使每个子集的元素都是唯一的?也就是说,对于a,可能的子集是:[][1][2][3][1,2][2,3][1,2,3]我无法生成所有可能的子集,因为a的实际大小非常大,所以有很多很多子集。目前,我正在使用“随机游走”的想法——对于a的每个元素,我都会“抛硬币”,如果硬币正面朝上则将其包括在内——但我不确定这是否真的对空间进行了均匀采样。感觉它偏向于中间,但这可能只是我的想法在进行模式匹配,因为会有更多中等大小的可能性。我使用的方法是否正确,或者我应该如何随机抽样?(我知道这更像是一个与语言无关的“数学”问题,但我觉得这不是真正的