草庐IT

ios - 在 Xcode 调试中观察变量或检查对象的技巧

全部标签

ruby - 为 IO::popen 拯救 "command not found"

当我将IO::popen与不存在的命令一起使用时,我在屏幕上打印了一条错误消息:irb>IO.popen"fakefake"#=>#irb>(irb):1:commandnotfound:fakefake有什么方法可以捕获此错误,以便我可以在脚本中进行检查? 最佳答案 是:升级到ruby​​1.9。如果您在1.9中运行它,则会引发Errno::ENOENT,您将能够拯救它。(编辑)这是在1.8中的一种hackish方式:error=IO.pipe$stderr.reopenerror[1]pipe=IO.popen'qwe'#

ruby - Rails 比较 date.end_of_day.to_datetime 和 date.to_datetime.end_of_day 返回的日期对象值时返回 false

ruby1.9.3dev(2011-09-23修订版33323)[i686-linux]轨道3.0.20最近为什么在与DateTimeonRails相关的RSpecs项目上工作我发现在给定日期以下语句发出的值date.end_of_day.to_datetime和date.to_datetime.end_of_day虽然它们表示相同的日期时间,但比较时返回false。为了确认这一点,我打开了Rails控制台并尝试了以下操作1.9.3dev:053>monday=Time.now.monday=>2013-02-2500:00:00+05301.9.3dev:054>monday.cla

ruby - 有没有办法在 Ruby 中执行编译时类型检查?

我知道Ruby是动态和强类型的,但据我所知,由于每个参数缺少显式类型表示法(或契约),当前语法不允许在编译时检查参数类型。如果我想执行编译时类型检查,我有哪些(实际成熟的)选项?更新我的意思是类型检查类似于典型的静态类型语言。比如C。例如,C函数表示每个参数的类型,编译器检查传入的参数是否正确。voidfunc1(structAAAaaa){structBBBbbb;func1(bbb);//Wrongtype.Compiletimeerror.}作为另一个例子,Objective-C通过放置显式类型信息来做到这一点。-(id)method1:(AAA*)aaa{BBB*bbb=[[A

ruby-on-rails - RVMSUDO 不使用环境变量

我生成了一组我在.bash_profile中设置的环境变量这在使用RVMSUDO时不起作用然后我尝试了rvmexport,在查看rvmsudoenv时,他们获得了rvm_old_$nameofvariable而不是$nameofvariable我也试过添加导出名称=值到项目中的.rvmc,这似乎没有得到反射(reflect)。有什么建议吗? 最佳答案 根据:https://github.com/wayneeseguin/rvm/blob/master/bin/rvmsudo#L83你应该在你的环境变量前加上“http_”或“PATH

ruby-on-rails - Rails 在记录 200 OK 后在做什么? (调试响应时间慢)

我试图在我的RubyonRails应用程序中调试一个极其缓慢的请求调用。我已设法根据自己的喜好优化Controller方法,Rails的日志告诉我它已在XX毫秒内完成操作(Completed200OKin5049ms(Views:34.9ms|ActiveRecord:76.3ms)).但是,在加载页面时,在浏览器中实际呈现任何内容之前打印此消息很长;最多约15秒的等待时间。Rackmini-profiler证实了这一点,告诉我GET操作(不计算完成Controller操作所花费的时间)花费了14秒左右。(分析器还确认Controller操作的执行时间约为5秒)。我可以接受Contro

ruby - IO::EAGAINWaitReadable:资源暂时不可用 - 读取会阻塞

当我尝试使用“套接字”库中的方法“read_nonblock”时出现以下错误IO::EAGAINWaitReadable:Resourcetemporarilyunavailable-readwouldblock但是当我通过终端上的IRB尝试时它工作正常如何让它读取缓冲区? 最佳答案 IgetthefollowingerrorwhenItrytousethemethod"read_nonblock"fromthe"socket"library当缓冲区中的数据未准备好时,这是预期的行为。由于异常IO::EAGAINWaitReadab

ruby:如何在调试时进入任意函数

假设我在调试时停在了点上:defget_databyebug=>@cache||=calculate_dataend而@cache有值,所以step函数calculate_data不会被执行。但是我需要在这个确切的运行时点检查calculate_data内部发生了什么。我可以只执行calculate_data并在控制台输出中查看其结果,但是我可以从调试控制台执行函数并同时进入它?(使用byebug或其他一些调试工具)。目标-是在任意时间检查calculate_data逻辑,特别是当get_data调用时@cache已填充。 最佳答案

ruby - 加载使用 YAML 序列化的对象时调用初始化

是否可以在使用YAML.load_file时强制Ruby调用初始化方法?我想调用该方法以便为我不序列化的实例变量提供值。我知道我可以将代码分解成一个单独的方法并在调用YAML.load_file之后调用该方法,但我想知道是否有更优雅的方法来处理这个问题。 最佳答案 我认为你做不到。由于您要添加的代码确实特定于要反序列化的类,因此您应该考虑在类中添加该功能。例如,让Foo成为您要反序列化的类,您可以添加一个类方法,例如:classFoodefself.from_yaml(yaml)foo=YAML::load(yaml)#editth

ruby serialport gem,谁负责检查奇偶校验错误?

gem串口(1.0.4)作者:GuillaumePierronnet、AlanStern、DanielE.Shipton、Tobin理查德、赫克托·帕拉、瑞安·C·佩恩首页:http://github.com/hparra/ruby-serialport/使用RS-232串行端口的库。我正在使用这个gem,我的设备规范如下。9600bps7位1个停止位偶数当我收到如下数据时,解压后的数据仍然带有奇偶校验位。sp=SerialPort.new("/dev/serial-device",9600,7,1,SerialPort::EVEN)data=sp.getsdata.chars.eac

ruby - 动态变量 Jekyll Liquid

我想为我的jekyll+liquid安装使用动态变量。我想使用动态变量动态访问_config.yml文件名字。最好用一个例子来解释:页面:---layout:defaulttitle:title_homepage---默认布局:{{site.locales[site.default_locale].page.title}}_config.yml:default_locale:"en"locales:en:title_homepage:"Thisismyhomepagetitle!"pirate:title_homepage:"Yaaawwwr.Homepagetitle."那么如何使用