草庐IT

ios - 制作四个独立的变量

全部标签

Ruby:自动将实例变量设置为方法参数?

是否有计划实现类似于在方法参数列表中指定实例变量名称的CoffeeScript功能的ruby​​行为?喜欢classUserdefinitialize(@name,age)#@nameissetimplicitly,but@ageisn't.#thelocalvariable"age"willbeset,justlikeitcurrentlyworks.endend我知道这个问题:inRubycanIautomaticallypopulateinstancevariablessomehowintheinitializemethod?,但所有的解决方案(包括我自己的)似乎都不符合ruby

ruby - 如何使用 Chef 设置环境变量?

有一个与此类似的问题,但无法使其正常工作:我想简单地设置一个环境变量,然后使用它:execute"startzookeeper"docwd"/opt/zookeeper-3.4.5/bin"command"./zkServer.shstart"environment"JVMFLAGS"=>"-Xmx#{heap_jvm}-Xms#{heap_jvm}"user"root"action:runend我也尝试过使用bash来"exportJVMFLAGS='-blabla'"但它仍然运行sh而没有设置变量。是否存在阻止我的sh脚本检查变量的问题?我可以像模板一样使用sh并替换JVMFLAG

ruby - 访问以变量为键的 Ruby 散列

如果我有以下ruby​​哈希:environments={'testing'=>'11.22.33.44','production'=>'55.66.77.88'}我将如何访问上述散列的部分内容?下面是关于我要实现的目标的示例。current_environment='testing'"rsync-arroot@#{environments[#{testing}]}:/htdocs/" 最佳答案 您似乎想要exec最后一行,因为它显然是一个shell命令而不是Ruby代码。您不需要插值两次;一次就可以:exec("rsync-arr

ruby - $之间的区别!与救援变量

当从异常中拯救时,有两种方式来引用抛出的异常:begin...rescueException=>ehandle_the_error(e)end和begin...rescueExceptionhandle_the_error($!)end我相信它们可以互换,但它们是吗?有没有什么情况应该用一个代替另一个? 最佳答案 我还认为这些片段可以互换。但是您应该始终更喜欢显式变量而不是线程全局魔法。$!魔术变量很方便的一个例子:result_or_error=perform_some_operation()rescue$!对于那些不知道这行意思

ruby-on-rails - Heroku ruby​​ buildpack 错误 - 未定义的局部变量或方法 `install_language_pack_gems'

我刚刚将我的Rails3.2.16应用程序的ruby​​版本从1.9.2升级到2.0.0,并且在本地一切正常。但是,当尝试推送到Heroku时,编译失败。它检测ruby​​版本,开始安装依赖项,然后崩溃:----->CompilingRuby/Rails----->UsingRubyversion:ruby-2.0.0----->Installingdependenciesusing1.5.2Rubyversionchangedetected.Clearingbundlercache.Old:ruby1.9.3p484(2013-11-22revision43786)[x86_64-l

ruby 使用变量执行 bash 命令

我需要在Ruby脚本中执行Bash命令。根据"6WaystoRunShellCommandsinRuby"byNateMurray,大约有6种方法可以做到这一点以及其他一些谷歌搜索的来源。print"entermyid:"myID=getsmyID=myID.downcasemyID=myID.chompprint"enterhost:"host=getshost=host.downcasehost=host.chompprint"winexetohost:",host,"\n"command="winexe-Udomain\\\\",ID,"//",host,"\"cmd\""exe

ruby - 模块的实例变量是否在类与 mixin 之间共享?

我想知道Ruby模块的实例变量在多个类中的行为如何“混合”它。我写了一个示例代码来测试它:#HereisamoduleIcreatedwithoneinstancevariableandtwoinstancemethods.moduleSharedVar@color='red'defchange_color(new_color)@color=new_colorenddefshow_colorputs@colorendendclassExample1includeSharedVardefinitialize(name)@name=nameendendclassExample2includ

ruby-on-rails - 如何在 Factory Girl 或 Minifacture 中使用随机唯一数据制作 Ruby 测试工厂?

我正在用一个典型的工厂测试一个典型的Rails模型:#Mymodelusesa3-letteruppercaseairportcode,#suchas"ATL"forAtlanta,"BOS"forBoston,etc.classAirport我正在添加更多测试并开始看到机场代码中的冲突:例如,工厂创建了一个代码为“XYZ”的机场,然后对工厂的后续调用尝试创建一个具有相同代码的机场。序列是解决这个问题的一种方法。例如,使用FactoryGirl序列、有序列表或预先计算的枚举,以及维护下一个可用代码状态的类似方法。我的问题是:解决这个问题的非序列方法是什么?我想使用随机数据,不是序列。我

ruby - 如何获取使用 IO.popen 调用的命令的退出状态?

我正在使用IO.popen执行命令并像这样捕获输出:process=IO.popen("sudo-uservice_user-istart_service.sh")do|io|whileline=io.getsline.chomp!process_log_line(line)endend如何捕获*start_service.sh*的退出状态? 最佳答案 您可以通过引用$?捕获通过IO.open()调用的命令的退出状态,只要您关闭了block末尾的管道即可。在上面的例子中,你会这样做:process=IO.popen("sudo-us

ruby - 局部变量以下划线开头是好习惯吗?

我刚接触Ruby,来自Java和C/C++环境。在用Ruby编写第一个小项目时,我不知何故习惯了让所有局部变量都以下划线开头。我想我这样做的主要动机是更好的可读性和与方法调用的区别。由于原则上只有三种类型的变量($global、@instance和local),绝大多数变量开始带下划线。我不太确定,这是好事还是坏事。此外,在许多其他语言中,下划线会被替换为其他字符。除了通常的CamelCase和/或下划线分隔之外,是否有关于变量命名的最佳实践?专业“rubyists”的习惯是什么?当我选择前导下划线时,我是否忽略了一些通用的Ruby约定?编辑感谢所有答案和建议。这对我帮助很大。下面是答