草庐IT

Python:用argparse模块解析命令行选项

全部标签

ruby - 引用与类同名的模块中的方法

我有一个同名的类和一个模块:modulePushoverdefconfigure..endendmoduleMyModuleclassPushoverdefblahPushover.configureendendend这不起作用,因为Pushover.configure调用指向包含类。现在,一个明显的解决方法是重命名该类。但是,模块来自gem,并且类符合DSL中要求的命名约定。所以理想情况下,它们应该保持不变。我还可以创建第二个帮助程序类并通过它进行调用,但这一切看起来有点老套。我的首选解决方案是直接引用模块方法。围绕这个领域的所有现有问题似乎都在相反的方向上消除歧义——即他们想要获得

ruby - 针对每一行的多个(15+)正则表达式解析文本正文的最佳方法是什么?

我有一段文本需要扫描,每行至少包含2部分信息,有时包含4部分信息。问题是每一行可能是15-20种不同操作中的一种。在ruby​​中,当前代码看起来像这样:text.split("\n").eachdo|line|#around20times................expressions['actions'].eachdo|pat,reg|#around20times.................这显然是“问题所在”。通过将所有正则表达式合并为一个,我确实设法使其更快(在C++中提高了50%),但这仍然不是我需要的速度——我需要快速解析数千个这些文件!现在我将它们与正则表达式

Ruby 相当于 Python setattr()

好吧,将我添加到爱上Ruby但对PyAddiction挥之不去的Python程序员的列表中。喜欢关于Python'sgetattr的帖子,我正在寻找与此等效的Ruby:setattr(obj,'attribute',value)其中obj是一个对象实例,attribute是对象属性之一的字符串名称,value是该对象的值。等效代码为:obj.attribute=value我假设这是可能的(因为现在在Python中的任何可能在Ruby中似乎更容易),但找不到它的文档。 最佳答案 obj.instance_variable_set("@

ruby - 从命令行通过 capistrano 在远程主机上运行命令

有没有办法在不将命令添加到Capfile的情况下在capistrano中运行命令?例子:cap--eval"run'du-sh'"--roleweb 最佳答案 您可以使用它在服务器上运行命令。capROLES=webinvokeCOMMAND='du-sh'如果您甚至没有上限配方,您可以在命令行上指定服务器:cap-suser=myusernameHOSTS=server1.com,server2.cominvokeCOMMAND='du-sh'要查看更多命令行选项,请运行cap-H和cap-einvoke。

ruby-on-rails - 模块的 Rails 未定义方法

在Rails中,如何使用模块中的特定方法。例如,#./app/controllers/my_controller.rbclassMyControllerMyController包含MyModule。在action中,我想使用MyModule.a_method(请注意我在MyController中也有一个私有(private)的a_method并且我不我想用这个。)我尝试过的事情:1)将模块中的方法定义为self.defself.a_methodend2)在Controller中使用::表示法(MyModule::a_method)我不断收到的错误是MyModule:module的未定义

ruby - 如何改进 Ruby 中的模块方法?

您可以使用优化您的类(class)moduleRefinedStringrefineStringdodefto_boolean(text)!!(text=~/^(true|t|yes|y|1)$/i)endendend但是如何细化模块方法呢?这:moduleRefinedMathrefineMathdodefPI22/7endendend引发:TypeError:错误的参数类型模块(预期类) 最佳答案 这段代码可以工作:moduleMathdefself.piputs'originalmethod'endendmoduleRefin

ruby - 如何解析 "Your bundle only supports platforms ["x86-mingw3 2"] but your local platforms are ["ruby​​", "x86_64-linux"]"

我正在Windows机器上构建一个Rails站点,但是当我检查我的Gemfile.lock时,我在我的Travis构建中遇到以下错误:Yourbundleonlysupportsplatforms["x86-mingw32"]butyourlocalplatformsare["ruby","x86_64-linux"],andthere'snocompatiblematchbetweenthosetwo列表这是完整的日志:https://travis-ci.org/bikebike/BikeBike/builds/222395810#L654我查看了我的Gemfile.lock并指出:

ruby - 要求命令在 Snow Leopard 上的 bash irb 中不起作用

我正在研究ZedShaw的“艰难学习Ruby练习25”http://ruby.learncodethehardway.org/ex25.html当我导航到包含ruby​​文件ex25.rb的目录并启动IRB时,我收到以下错误:Larson-2:~larson$cdRubyLarson-2:Rubylarson$lsex25.rbLarson-2:Rubylarson$irbruby-1.9.2-p290:001>require'ex25'LoadError:nosuchfiletoload--ex25from/Users/larson/.rvm/rubies/ruby-1.9.2-p2

ruby - "dyld: Library not loaded", "libruby.1.9.1.dylib"在命令行调用"mvim ."时

我正在尝试使用“mvim”将我的Rails项目打开到mvim(macvim)中。但我收到以下错误。➜cs193pgit:(master)mvim.dyld:Librarynotloaded:/Users/myusername/.rvm/rubies/ruby-1.9.3-p125/lib/libruby.1.9.1.dylibReferencedfrom:/usr/local/Cellar/macvim/7.3-64/MacVim.app/Contents/MacOS/VimReason:imagenotfound[1]85219tracetrapmvim.➜cs193pgit:(ma

ruby - 如何在命令行上将实例变量传递给 HAML 模板?

背景我正在尝试测试Rails之外的一些HAML模板的格式。这个想法是在命令行或通过包含的Ruby文件传递​​一些实例变量,将模板呈现为标准输出。我尝试了几种不同的方法但没有成功,如下所述。需要一个Ruby文件例如,给定以下两个文件:HAML模板:“test.haml”!!!%h1TestingHAMLCLI%p=@bar%p=@bazRuby文件:“test.rb”@foo='abc'@bar='123'我希望像haml-r./testtest.haml这样的调用在标准输出上返回一个内插的HTML文件,但它没有。相反,我只得到HTML:TestingHAMLCLI程序化尝试由于这不起作