草庐IT

javascript - 在cocoa webview中调用网页的Javascript函数

全部标签

ruby - 如何在运行时获取 ruby​​ system() 调用的 STDOUT?

类似于Gettingoutputofsystem()callsinRuby,我正在运行一个系统命令,但在这种情况下,我需要在命令运行时从命令输出STDOUT。 最佳答案 在链接的问题中,答案还是完全不要使用system,因为system不支持这一点。但是这次解决方案不是使用反引号,而是IO.popen,它返回一个IO对象,您可以使用它来读取正在生成的输入。 关于ruby-如何在运行时获取ruby​​system()调用的STDOUT?,我们在StackOverflow上找到一个类似的问题

通过传递构造函数的 Ruby YAML 解析器

我正在开发一个应用程序,该应用程序从YAML文件获取输入,将它们解析为对象,然后让它们执行它们的操作。我现在遇到的唯一问题是YAML解析器似乎忽略了对象“初始化”方法。我指望构造函数用默认值填充YAML文件缺少的任何实例变量,并将一些东西存储在类变量中。这是一个例子:classTest@@counter=0definitialize(a,b)@a=a@b=b@a=29if@b==3@@counter+=1enddefself.how_manyp@@counterendattr_accessor:a,:bendrequire'YAML'a=Test.new(2,3)s=a.to_yaml

ruby - 没有继承的人如何覆盖类方法并从新方法中调用原始方法?

我找到了一个成功覆盖Time.strftime的来源,如下所示:classTimealias:old_strftime:strftimedefstrftime#dosomethingold_strftimeendend麻烦的是,strftime是一个实例方法。我需要重写Time.now-一个类方法-这样任何调用者都可以获得我的新方法,而新方法仍然调用原始的.now方法。我查看了alias_method,但没有成功。 最佳答案 有时这有点难以理解,但您需要打开“eigenclass”,它是与特定类对象关联的单例。其语法为classcl

ruby - 重写简单的 ruby​​ 函数以使用 block

我不知道正确的术语。我试图用谷歌搜索它,但由于这个原因找不到任何东西。我正在编写一个Ruby库,我想重写这些函数,以便它们像下面那样工作,因为我更喜欢它的可读性(在一个block内?)我有一个函数可以做到这一点@dwg=Dwg.new("test.dwg")@dwg.line([0,0,0],[1,1,0])@dwg.save我想重写它,让它像这样工作Dwg.new("test.dwg")doline([0,0,0],[1,1,0])saveend你能概述一下我处理这件事的方法吗? 最佳答案 您可以定义Dwg的初始化程序来获取一个b

ruby - 你如何在 Rspec 中模拟/ stub 反引号系统调用?

我有一个使用反引号的方法,但stub不适用于它。它正在拉取ls的结果:classTestHelperdefself.test_method`ls`endendrspec测试:describeTestHelperdodescribe'.test_method'dosubject{described_class.test_method}before{Kernel.stub(:`).and_return("test_dir")}it{expect(subject).toeql("test_dir")}endend 最佳答案 TestHel

Ruby 构造函数和异常

Ruby新手,我想弄清楚使用什么习惯用法来将某些整数值限制为类的构造函数。根据我目前所做的,如果我在initialize()中引发异常,该对象仍会创建,但将处于无效状态(例如,某些nil实例变量中的值)。我不太明白我应该如何限制这些值而不进入看起来不必要的大步骤,例如限制对new()的访问。所以我的问题是,我可以通过什么机制来限制实例化对象的值范围? 最佳答案 嗯,你是完全正确的,即使initialize引发异常,对象仍然存在。然而,任何人都很难坚持引用,除非你从initialize中泄漏self就像我刚写的下面的代码一样:>>cl

ruby - 调用 super 时参数数量错误

classAdefinitializeprint"Hello!"endendclassB我明白了wrongnumberofarguments(1for0)但是为什么?类B需要一个参数,我给它没问题。类A不需要任何参数,所以我根本没有通过super传递任何东西。 最佳答案 您需要使用super()才能不带参数调用它。Super本身会使用提供给自身的参数(即“名称”)自动调用父级 关于ruby-调用super时参数数量错误,我们在StackOverflow上找到一个类似的问题:

ruby - 如何打开网页并将其写入 ruby​​ 文件?

如果我使用OpenURI运行一个简单的脚本,我可以访问网页。结果写入终端。通常我会使用bash重定向将结果写入文件。如何使用ruby​​将OpenURI调用的结果写入文件? 最佳答案 require'open-uri'open("file_to_write.html","wb")do|file|URI.open("http://www.example.com/")do|uri|file.write(uri.read)endend注意:在Rubyopen(url)而不是URI.open(url)。参见https://bugs.ruby

ruby-on-rails - 你如何从 Rails 中的 View 调用方法?

假设我这样做了:脚本/生成Controller主页并且在家庭Controller中做了一个方法..defsayputs"Youarehere"end如何在index.html.erb中调用该方法?当学习ruby​​时,它只是说在终端中运行whatever.rb运行您在该文件中编写的所有代码。只是好奇如何这将适用于Rails。 最佳答案 我假设您正在运行Rails服务器?有两种可能性,首先你可以在Controller中使用一个辅助方法:helper_method:say在你的Controller中。或者,更好的解决方案是将您的say方

ruby - Ruby 中的函数指针?

也许这是一个愚蠢的问题,但我是ruby的新手,我用谷歌搜索了一下,发现了这些:proc=Proc.new{|x|deal_with(x)}a_lambda=lambda{|a|putsa}但我想要这个:defforward_slash_to_back(string)...defback_slash_to_forward(string)...defadd_back_slash_for_post(string)......caseconversion_typewhen/bf/ithenproc=&back_slash_to_forwardwhen/fb/ithenproc=&forward