0

我正在使用 HighLine 编写我的控制台应用程序,我想修改 HighLine::Question::in_range!功能使制表符完成保持激活状态,但高亮线不会检查键入的单词是否在范围内。

所以假设我有一个标签完成列表,如 %w{app1, app2, app3}

我希望能够在我的控制台中做到这一点:

app1 -option1 value1 -option2 value2

从我对 HighLine 代码的理解来看,我似乎需要通过 in_range!检查,因此该函数需要返回 true。

显然,我不想直接在其文件中修改代码源 HighLine。因此,我正在寻找一种能够在我自己的代码中即时修改或重写该函数的解决方案。有没有解决方案来做我正在寻找的事情?

感谢您抽出宝贵时间,我希望我的问题已经足够清楚。

4

1 回答 1

4

如果你想修改in_range?特定Question对象的方法x,你可以这样做

class << x
  def in_range?
    true
  end
end

如果要为所有 Question对象修改它:

class Question
  def in_range?
    true
  end
end

但是,我想知道您是否真的需要在您的情况下这样做。我认为您可以简单地设置above,belowinnil您的问题中简化in_range?检查。

于 2009-07-07T08:07:53.633 回答