草庐IT

命令模式

全部标签

ruby - 为什么我会看到这两个几乎相同的 Ruby 正则表达式模式的不同结果,为什么一个匹配我认为不应该匹配的内容?

使用Ruby1.9.2,我在IRB中有以下Ruby代码:>r1=/^(?=.*[\d])(?=.*[\W]).{8,20}$/i>r2=/^(?=.*\d)(?=.*\W).{8,20}$/i>a=["password","1password","password1","pass1word","password1"]>a.each{|p|puts"r1:#{r1.match(p)?"+":"-"}\"#{p}\"".ljust(25)+"r2:#{r2.match(p)?"+":"-"}\"#{p}\""}这会产生以下输出:r1:-"password"r2:-"password"r1:

ruby - ruby 命令行开关 -rubygems & -r 不兼容吗?

我最近将一个ruby​​库转换为一个gem,这似乎破坏了命令行的可用性作为图书馆工作得很好$ruby-rfoobar-e'pFooBar.question'#=>"answer"作为一个gem,irb知道如何从命令行开关中请求一个gem$irb-rubygems-rfoobarirb(main):001:0>FooBar.question#=>"answer"但对于ruby​​本身来说同样失败了:$ruby-rubygems-rfoobar-e'pFooBar.question'ruby:nosuchfiletoload--foobar(LoadError)我现在必须这样做吗,这看起来

ruby-on-rails - 验证终端命令已在 Rails 中成功运行的最佳方法是什么?

我正在编写一个快速的Rails应用程序,并且想知道如何验证执行的命令是否成功。我正在运行的两个命令是SVN更新,以及从一个目录到另一个目录的cp。 最佳答案 如果您使用Kernel.system()方法,它将返回一个bool值,指示命令是否成功。result=system("cp-rdir1dir2")if(result)#dothenextthingelse#handletheerror不同的ruby系统命令有很好的比较here. 关于ruby-on-rails-验证终端命令已在Rai

ruby-on-rails - Rails 中的 Post Redirect Get 模式

如何在Rails中实现PRG?我在Rails中使用了PRG,但我并不完全相信它是正确的。我想知道在Rails中是否有更好的方法来处理它? 最佳答案 我不知道PRG模式有多流行以及为什么人们必须虔诚地坚持它的失败方面的“重定向”(实际上,一个很好的理由是有时你不想处理“设置”的复杂性制造失败并保持干燥)。您基本上需要的是将:user的参数传输到new。我认为上面@Hitesh的解决方案非常接近。classUsersController:newendendend 关于ruby-on-rail

ruby - 单元测试 ruby​​ 命令行应用程序的代码 - 如何模拟/传递 ARGV

我有一个命令行应用程序,它使用thor来处理选项的解析。我想使用test-unit和/或minitest针对代码对命令行功能进行单元测试。我似乎无法弄清楚如何确保ARGV数组(通常会保存命令行中的选项)保存我的测试选项,以便它们可以根据代码进行测试。具体应用代码:#myapp/commands/build.rbrequire'thor'moduleMyappmoduleCommands#DefinebuildcommandsforMyAppcommandlineclassBuild:test_unit#Definesourcerootofapplicationdefself.sourc

ruby - 使用 Nokogiri 进行模式验证

我正在尝试使用Nokogiri根据十几个模式验证XML文档。目前我有一个导入所有其他模式的根模式文档,我对此进行了验证。我能否从XML文件本身指向每个模式文件,并让Nokogiri在XML文件中查找模式以进行验证? 最佳答案 引用多个模式以验证XML文件的正确方法是使用schemaLocation属性:对于文档中的每个namespace,您列出了一对以空格分隔的值:namespaceURI后跟关于在哪里可以找到该namespace的架构的“提示”。如果您为每个提示提供完整的URI,那么您可以像这样使用Nokogiri进行处理:req

ruby-on-rails - 为什么 Array.count 在开发模式下可用但在生产模式下不可用?

对于最近的一个项目,我有几个View是这样的代码:这在开发模式下工作得很好......我将它推出到生产模式并且它爆炸了,说count不是Array的有效方法。我将每个实例都改为使用Array#length,它似​​乎可以正常工作。1)这种行为差异的原因是什么?2)我应该注意开发模式和生产模式之间的任何其他令人兴奋的差异吗?道德:确保您的生产托管环境使用与本地开发环境相同的Ruby版本。:)谢谢汤姆 最佳答案 count方法仅在Ruby1.9及更高版本中可用。我建议您使用与服务器相同版本的Ruby以避免此类问题-1.9中发生了很多变化

Linux export 命令及如何删除export设置的环境变量

背景:Linuxexport命令用于设置或显示环境变量。在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。语法:export[-fnp][变量名称]=[变量设置值]参数说明:-f 代表[变量名称]中为函数名称。-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。-p 列出所有的shell赋予程序的环境变量。实例:列出当前所有的环境变量#export-p//列出当前的环境变量值定义环境变量赋值#exportMYENV=7//定义环境变量并赋值添加环境变量:默认保存在

ruby - ruby 中的反引号不适用于 tail -f 命令

下面的代码不打印tail-f的输出。为什么?我怎样才能让它发挥作用?#myApp.rb`ls`#worksfine`tail-ffilename`#doesnotwork.why? 最佳答案 通过在tail上使用跟随选项-f,执行的命令不会立即终止。-f,--follow[={name|descriptor}]outputappendeddataasthefilegrows;与使用system('...')相比,使用反引号(或%x快捷方式)的想法是这些语句返回的输出执行的命令。这样您就可以将结果存储在一个变量中:dir_conten

java - 如何在 Clojure 中创建命令行可执行文件

我用Clojure编写了一个程序,我想在命令行上执行它而不在命令行上专门调用java(例如java-jar)。我想要单个可执行文件,例如myprogram,它接受任何参数并运行我的程序。以下是一些可能会使这更容易的事情:可以假设Java已经安装并且java就在路上。虽然适用于Windows的解决方案会是一个很好的优势,但您可以假设这一切都是在类似UNIX的操作系统(例如MacOSX或Ubuntu)上完成的。可以在某种脚本中调用Java。可以使用其他一些语言,例如Ruby、Python或Perl,用户可能已安装或未安装这些语言。All-bash会很酷,因为我可以假设人们拥有它。如果我必须