草庐IT

批处理bat命令

全部标签

ruby - 让 Ruby block /命令在没有空白 'rescue' block 的情况下静默失败

假设我想要运行一个调用,如果它失败了,也没什么大不了的;该程序可以继续没有问题。(我知道这通常是不好的做法,但想象一个假设的、快速的一次性脚本,而不是一个大项目)我被教导这样做的方式是:beginthing_to_tryrescue#awkwardblankrescueblockendnext_thing当然,还有其他方法可以做到这一点,包括使用ensure之类的。但是有没有办法让方法调用/block在没有困惑的空白block的情况下静默失败? 最佳答案 思路是一样的,只是少了一点冗长,不过你可以使用内联语法thing_to_try

ruby-on-rails - "ruby script/plugin"是命令吗?

我按照在线教程在AppEngine上创建RubyonRails应用程序。有一个其他人可以运行的命令,但它没有在我的Ubuntu10.10上运行:rubyscript/plugininstallhttp://svn.avdi.org/nulldb/trunk/当我尝试运行它时,它会提示:ruby1.8:Nosuchfileordirectoryscript/plugin(LoadError)我的电脑出了什么问题?ruby-v==>1.8.7rails-v==>2.3.10gem-v==>1.3.7 最佳答案 如果使用rails3,cd

ruby-on-rails - 找不到 rvm 命令

我用rails安装了rvm,从RVM官网,我指定了教程提示的命令。安装时我的系统有rails4.0.0、rvm01/23/12、ruby2.0.0、bundlergem1.3.5和2.0.3但是我需要安装ruby​​1.9来练习我目前正在做的类(class)。“僵尸铁路2”我尝试执行指令rvminstall1.9.3并且控制台返回此消息:rvm:找不到命令 最佳答案 可能重复:Ubunturvmsetupissue您的问题是当您打开一个新终端时,RVM没有加载。要解决此问题,请运行此命令行:(如果使用登录外壳)echo"source

ruby-on-rails - 为什么我的 rails 命令总是创建一个新的应用程序?

请原谅我,因为我是*nix和ruby​​onrails的新手。我的rails命令总是创建一个新的应用程序,我不明白为什么。运行“railsnewmyApp”只会在当前目录中生成一个名为“new”的新Rails应用程序。同样,“railsserver”只是在名为“server”的文件夹中创建一个新应用程序。有任何想法吗?我正在使用Ubuntu11.04和rails3.0.9。 最佳答案 要在当前目录下创建项目,你可以运行:railsnew. 关于ruby-on-rails-为什么我的rai

ruby - 使用 %x 捕获命令行错误

无论什么时候你想在命令行上执行一些东西,你都可以使用下面的语法:%x(commandtorun)但是,我想捕获错误或至少获得响应以便我可以正确解析它。我试过设置:result=%x(commandtorun)并使用try-catchbegin%x(commandtorun)rescue"didn'twork"end没有用。我怎样才能捕获结果而不是将它们打印出来? 最佳答案 所以这不会直接回答您的问题(不会捕获命令的输出)。但不是尝试begin/rescue,您可以只检查命令的退出代码($?):%x(commandtorun)unle

ruby-on-rails - 有办法处理 `after_save` 和 `after_destroy` "equally"吗?

我正在使用Rails3.1.0,我想知道是否可以“平等地”处理after_save和after_destroy回调。也就是说,我需要为after_save和after_destroy回调运行相同的方法。此时我必须分别处理这些回调,即使它们完成的是同一件事:after_savedo|record|#Makeathingendafter_destroydo|record|#Makethesamethingasinthe'after_save'callbackend那么,有一种方法可以“平等地”处理after_save和after_destroy吗? 最佳答案

ruby - 如何格式化 irb 命令提示符

以前我使用的是Ruby1.8,我的irb命令提示符曾经是这样的:Air~:irb>>a=1=>1>>b=2=>2>>a+b=>3我安装了rvm(和Ruby1.9.2),现在我的irb命令提示符如下所示:Air~:irbruby-1.9.2-p180:001>a=1=>1ruby-1.9.2-p180:002>b=2=>2ruby-1.9.2-p180:003>a+b=>3有没有办法从命令行中删除ruby-1.9.2-p180:001? 最佳答案 irb手册页有一节关于“Customizingprompt”。这是我的例子:IRB.co

ruby - 为什么不能使用要处理的符号调用 protected 方法?

给定以下类:classFoodefadup.tap{|foo|foo.bar}enddefbdup.tap(&:bar)endprotecteddefbarputs'bar'endend看起来Foo#a和Foo#b应该是等价的,但它们不是:>Foo.new.abar=>#>Foo.new.bNoMethodError:protectedmethod`bar'calledfor#这是有原因的吗?这是错误吗?在Ruby2.2.3p173上测试 最佳答案 让我们首先注意,在Ruby中,您可能知道,在类Foo上声明的方法a中,我可以在任何对

ruby - Ruby 的 stdlib Logger 类能否安全地处理来自多个进程的编写器?

我正在开发一个需要进行日志记录的Ruby库。理想情况下,我希望多个工作进程能够登录同一个文件。查看来自Ruby标准库的Logger类的源代码,我看到努力从多个线程同步写入日志(正如对IsRuby'sstdlibLoggerclassthread-safe?的回答中所指出的)。当多个进程写入同一个日志文件时,似乎存在类似的问题:根据底层决定缓冲/拆分写入的方式,每个日志消息可能无法保持其完整性。那么,有没有一种方法可以使用标准的Logger类来允许多个进程安全地记录到一个文件中?如果不是,这在Ruby项目中通常是如何完成的?这就是我所说的“安全”的意思:每个日志行都是“原子的”——在下一

ruby - Ruby 如何在语义上处理赋值?

在Ruby中,我们使用=运算符为对象赋值。将此与隐式类型结合起来,我们经常会遇到这样的情况:myVar=:asymbol上面的行既创建了一个新的符号对象,又将该对象绑定(bind)到变​​量名myVar。语义上,这是如何完成的?我一直在脑海中反复强调,=运算符不是解释器中内置的神奇语法,但实际上只是对象的语法糖.=(value)方法。考虑到这一点,我最好的猜测是,当解释器看到我们试图给一个undefinedvariable名赋值时,它首先创建一个特殊类型的新对象,比如undefined或null或其他东西,然后将:=消息传递给该对象,有效负载是我们尝试分配的值。但是,在未实例化的对象上