带参数的别名方法

马克西姆·巴纳耶夫(Maxim Banaev)

我有办法

def press_button(*key_buttons)
  # some interaction to send button 
end

我用这个有说法::shift:tab:backspace等我想这个方法有一个固定的说法,这样的别名press_shift将代表press_button(:shift)是否有可能做到这一点?或者,我是否必须像下面这样包装此方法:

def press_shift
  press_button(:shift)
end
def press_tab
  press_button(:tab)
end
def press_backspace
  press_button(:backspace)
end
马克西姆·巴纳耶夫(Maxim Banaev)

我想我已经为自己的问题找到了解决方案。method_missing红宝石钩会帮助我。

def method_missing(method_name, *args)
  if method_name.intern.include?('press')
    argument = /_(\w*)$/.match(method_name.intern)[0]
    press_button(argument.intern)
  else
    super
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章