在执行系统调用之前触发事件

时间:2017-10-14 18:19:11

标签: ruby kernel

我希望在使用系统调用系统之前检查,或者执行``以确保调用是从特定模块进行的。

我不想用它来清理或验证命令,只是确保只有一个模块可以进行这些调用。

感谢。

1 个答案:

答案 0 :(得分:0)

找到解决方案:

module BacktickURI
  alias_method :standard_back_tick_call, :`  #` #Comment for fixing Notepad++ highlighting, needs even back ticks
  alias_method :standard_system_call, :system

  def `(uri)#`
      standard_back_tick_call(uri)
  end

  def system uri
     standard_system_call uri
 end
end

编辑:上面的代码不是完整的过程,它只是执行我正在寻找的任务的位,更新系统和反引号方法。

Alias_method使用include移动范围,阻止循环引用或类似的东西。