草庐IT

c++ - 在派生类中扩展枚举

全部标签

ruby - 如何在 Jekyll 中没有 html 扩展名的情况下使用 page.url 链接到页面?

我正在用Jekyll构建一个网站。为了删除帖子中的html扩展名,我将以下内容添加到_config.ymlpermalink:/kb/:title为了从页面中删除html扩展名,我为每个页面创建了文件夹,并在每个页面文件夹中放置了一个index.html文件。现在帖子和页面在没有html扩展名的情况下也能正常工作,但是当我使用page.url链接到页面时,它会返回整个链接(/kb/index.html)而不仅仅是/kb。我可以使用什么变量链接到没有html扩展名的页面? 最佳答案 {{page.url}}返回的值反射(reflect

ruby-on-rails - 多列的相同枚举值

我需要做这样的事情:classPlanetEdge我的表是边表,但每个顶点都是一个整数。但是,在rails中似乎不可能实现上述目标。什么可能是制作字符串列的替代方法? 最佳答案 如果您根据http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html运行rails5.0或更高版本当您需要定义具有相同值的多个枚举时,您可以使用:_prefix或:_suffix选项。如果传递的值为真,则方法的前缀/后缀为枚举的名称。也可以提供自定义值:classConversation对于上面

ruby - 从 Gemfile 中找出哪些 gems 需要 native c 扩展?

我最近才开始将注意力转移到在TorqueBox上部署Ruby应用程序,这当然是在Jruby上构建的。到目前为止,我基本上一直在执行bundleinstall,然后在通往jrubydom的过程中处理每个gem,但我遇到了几个gem,由于需要重新实现大型他们的一部分。有没有一种方法可以调用bundler或ruby​​gems来遍历所有gem及其deps以测试它们是否需要nativec扩展,然后返回这样一个列表?处理一些更小的项目,或者甚至知道是否值得处理一个项目,将它转移到jruby肯定会很好。 最佳答案 基于具有原生扩展的gems通常

ruby - 如何在 Ruby 中使用 C# 样式枚举?

我只想知道在Ruby中模拟C#样式枚举的最佳方法。 最佳答案 Specifically,Iwouldliketobeabletoperformlogicaltestsagainstthesetofvaluesgivensomevariable.Examplewouldbethestateofawindow:"minimized,maximized,closed,open"如果您需要将枚举映射到值(例如,您需要最小化为0,最大化为100等),我会使用符号散列值,如下所示:WINDOW_STATES={:minimized=>0,:ma

Ruby:是否有类似 Enumerable#drop 的东西返回枚举器而不是数组?

我有一些大的固定宽度文件,我需要删除标题行。跟踪迭代器似乎不是很惯用。#ThisiswhatIdonow.File.open(filename).each_line.with_indexdo|line,idx|ifidx>0...endend#ThisiswhatIwanttodobutIdon'tneeddrop(1)toslurp#thefileintoanarray.File.open(filename).drop(1).each_linedo{|line|...}Ruby的成语是什么? 最佳答案 这稍微更整洁:File.op

ruby - 枚举器如何在 Ruby 1.9.1 中工作?

这个问题不是关于如何在Ruby1.9.1中使用枚举器,而是我很好奇它们是如何工作的。这是一些代码:classBunkdefinitialize@h=[*1..100]enddefeachif!block_given?enum_for(:each)else0.upto(@h.length){|i|yield@h[i]}endendend在上面的代码中我可以使用e=Bunk.new.each,然后是e.next,e.next得到每个连续的元素,但它究竟是如何暂停执行然后在正确的位置恢复的?我知道如果将0.upto中的yield替换为Fiber.yield则很容易理解,但此处并非如此。这是一

Ruby 可枚举反向检测

假设我有以下数组:views=[{:user_id=>1,:viewed_at=>'2012-06-2917:03:28-0400'},{:user_id=>1,:viewed_at=>'2012-06-2917:04:28-0400'},{:user_id=>2,:viewed_at=>'2012-06-2917:05:28-0400'},{:user_id=>3,:viewed_at=>'2012-06-2917:06:28-0400'},{:user_id=>1,:viewed_at=>'2012-06-2917:07:28-0400'},{:user_id=>1,:viewed

ruby - Ruby Thread 的派生类?

我在C++世界生活了很多年,而我才刚刚开始使用Ruby。我有一个类,我想做一个线程。在Ruby中,从Thread派生类是错误的吗?我看到的例子使用了下面的概念。Thread.new{}这样做会错吗?classMyThreadend 最佳答案 我认为这确实是一个关于领域建模的问题。如果您想扩展/增强线程的行为方式——例如添加调试或性能输出,那么您正在做的事情没有任何问题,但我认为这不是您想要的。您可能想在您的领域中使用事件对象对某些概念进行建模。在那种情况下,标准Ruby方法更好,因为它允许您在不改变领域模型的情况下实现这一目标。继承

ruby-on-rails - Gem::Ext::BuildError:错误:无法构建 gem native 扩展。 postgresql 和 ROR

我需要在应用程序ROR的生产环境中安装postgresql,以便在将其与heroku一起使用后,但是当我尝试安装gem'pg'时,会触发以下错误。我是新手,所以我不知道该怎么做我正在使用ruby​​1.9.3p547(2014-05-14修订版45962)[i686-linux]railsrails3.2.19Ubuntu12.04gem文件来源'https://rubygems.org'gem'rails','3.2.19'#BundleedgeRailsinstead:#gem'rails',:git=>'git://github.com/rails/rails.git'gem'm

c - 命令行错误消息的 "POSIX-defined format"是什么?哪个标准?

在ruby​​-doc.org上page我发现了以下关于命令行选项/参数解析(getopt库)的内容:ReturntheappropriateerrormessageinPOSIX-definedformat.Ifnoerrorhasoccurred,returnsnil.命令行错误消息的POSIX定义格式是什么?它是哪个POSIX标准?编辑:我必须澄清一下,我对标准/推荐的错误消息很感兴趣解析命令行参数/选项。在下面的链接(答案)中,我发现只提到了getopt的这种错误格式:"%s:illegaloption--%c\n",,"%s:optionrequiresanargument-