草庐IT

ruby - 从列表中生成从 n 到 m 的数字

我将从一个例子开始;给定n=1和m=100以及一个列表[1,2,3]生成所有包含一位数和两位数的数字等等,但在这种情况下它们需要小于100。输出:-1,2,3,11,12,13,21,22,23,31,32,33然后我们停止,因为下一个数字将超过100,例如:-111,112,113,121,122,123,131,132,133,21..,.22...,23...,31,32,33正如您所注意到的,我将1,2,3,4附加到之前创建的数字,为此我使用了一个递归函数,该函数在for循环中为我的列表,它们会一直运行,直到生成的数字大于我的限制。defx(str,finish,d,c)ret

ruby - 从用户提交的文本中提取关键字的好方法是什么?

我正在构建一个网站,该网站允许用户通过以图形方式表示支持和反对特定问题的论点来理解辩论。(Wrangl)我想对这些辩论进行分类,以便更容易找到它们并将它们联系起来。我不想让发起辩论的人在他们看到任何好处之前添加标签和类别,从而激怒他们,所以我正在寻找一种自动提取关键字的方法。有什么好的方法可以利用辩论的标题和描述(以及可能的论点本身的内容,一旦有的话)来提取,比如说,可以用作元数据将类似辩论联系在一起的十个强关键字,或者即使是在可以查看辩论的HTML页面头部的“元”关键字标记的内容。例如。DatamappervsActiveRecord该网站使用Ruby和Sinatra编码,使用Dat

Ruby:是否有关键字可以从自身内部调用方法(类似于 super)?

我想知道:在Ruby中,有没有一种方法可以在不使用其名称的情况下从自身内部调用方法?如果该方法是通过某些元编程技术创建的,那么通过其名称调用它可能会难以阅读。即使对于通常定义的方法,如果您不确定它的好名字,或者如果它的名字很长,通过一些关键字(类似于super)从自身内部调用它可能会很方便。 最佳答案 您可以使用Kernel#__method__以Symbol形式返回当前方法的名称。与super不同,它不是关键字而是常规方法,因此您必须将它连同必需的参数一起传递给send方法才能调用该方法。这是__method__返回的内容:obj

Ruby FTP 从文件夹中分离文件

我正在尝试抓取FTP并以递归方式提取所有文件。到目前为止,我一直在尝试使用下拉目录ftp.list.eachdo|entry|ifentry.split(/\s+/)[0][0,1]=="d"out[:dirs]但事实证明,如果您将列表拆分到最后一个空格,则获取带有空格的文件名和目录是错误的。在此处的逻辑上需要一点帮助。 最佳答案 如果一次列出所有文件,则可以避免递归files=ftp.nlst('**/*.*')目录未包含在列表中,但名称中仍提供完整的ftp路径。编辑我假设每个文件名都包含一个点,而目录名则没有。感谢您提及@Nik

ruby - 如何从定义相同名称的模块内部访问ruby中的顶级实体

在一个模块中,我有一个名为Process的类。moduleMProcess=Class.newProcess::wait(0)end这会引发NoMethodError。如何从模块内部访问顶级Process?如果不重命名我的类(class),这完全有可能吗? 最佳答案 ::Process.wait(0) 关于ruby-如何从定义相同名称的模块内部访问ruby中的顶级实体,我们在StackOverflow上找到一个类似的问题: https://stackoverf

ruby - 使用 Sinatra 时如何从 gem 导入 rake 任务?

我正在尝试向orientdbgem添加一些基本的rake任务,这将允许我创建数据库、创建数据库迁移和迁移数据库——类似于rails迁移。当我在本地执行rake任务时,我可以使用db:settings、db:create和db:create_migration,但是在将它们放入gem之后,我不知道如何从Sinatra访问它们使用“rake”时的应用。我有一种感觉,我要么是a)没有正确地组织gem中的文件和/或b)没有从Sinatra应用程序正确地调用东西。我的fork存储库的当前状态是https://github.com/ricaurte/orientdb-jruby我将任务文件放在li

ruby - 如何从 eval 内部返回?

我有一个代码需要在eval中使用。有时我需要退出评估代码,但我的尝试会导致错误。例如:#expectedtosee1,2and5;not3nor4;andnoerrorseval"puts1;puts2;return;puts3;puts4"#=>Error:unexpectedreturnputs5我尝试了return、end、exit、break,但都没有成功。exit不会引发错误,但我没有得到5。(注意:我知道eval是邪恶的,但在这种情况下我需要使用它。) 最佳答案 谢谢大家,但我找到了最适合我的问题的解决方案:lambda

ruby - 是否可以从 ruby​​ 脚本导出环境属性?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:ExportinganEnvironmentVariableinRuby我需要在ruby​​脚本中设置几个环境属性。通常,在bash中,我会执行以下操作:$exportSOME_VAR=some_value但在ruby​​中,以下(显然)不起作用:irb(main):002:0>`exportSOME_VAR=some_value`(irb):2:commandnotfound:exportASDF=1=>""有办法吗?

ruby-on-rails - 如何从命令行停止 Rails 服务器?

我有一个奇怪的事件,我关闭了我的终端,但服务器继续运行。当我尝试再次运行服务器时,我收到一条消息,表明服务器仍在运行。如何通过命令行停止服务器? 最佳答案 方法1:只需在运行服务器的终端中键入:Ctrl+C。方式2:另一种方式:在您的终端中找出进程的PID:$lsof-wnitcp:3000然后,终止进程:$kill-9PID方法3:您还可以使用以下命令杀死所有正在运行的名称中包含rails的应用程序:killall-9rails 关于ruby-on-rails-如何从命令行停止Rail

ruby - 从 Ruby 中的排序数组创建嵌套哈希——递归 group_by

我有一个对象数组,这些对象已根据这些对象的几个属性进行了排序。按照优先顺序,这些属性是foo、bar和baz。这意味着对象首先按foo排序;然后具有相同foo值的子序列按bar排序;然后具有相同foo和bar值的那些按baz排序。我想将其转换为反射(reflect)该分组的嵌套哈希。基本上我正在寻找递归Enumerable#group_by。键是foo、bar和baz的值;这些值将是对象的子哈希或数组。这是一个例子:[obj1,obj2,...objn].group_by_recursive(:foo,:bar,:baz)#=>{foo_val_1=>{bar_val_1=>{baz_