是否有类似于Class#的钩子,仅在Ruby类定义之后被触发?

#inherited在Foo语句之后被调用.我想要的东西只能在关闭类声明的结束语句之后运行.

这里有一些代码来说明我需要的内容:

class Class
  def inherited m
    puts "In #inherited for #{m}"
  end
end

class Foo
  puts "In Foo"
end
puts "I really wanted to have #inherited tiggered here."


### Output:
# In #inherited for Foo
# In Foo
# I really wanted to have #inherited tiggered here.

有什么事情存在吗?可以创建吗我完全没有运气吗?

解决方法

你可能没有运气.但这只是一个警告,而不是一个明确的答案.

Ruby钩入类定义的开始,而不是结束,对于Class#继承的b / c ruby​​类定义没有真正的结束.他们能
随时重新开放

some talk a couple years ago about adding a const_added trigger,但还没有经历. From Matz

I’m not going to implement every possible hook. So when somebody
comes with more concrete usage,I will consider this again. It would
be const_added,not class_added.

所以这可能会处理你的情况 – 但是我不确定(它最终可能在最终实现的时候触发).

你试图用这个触发器做什么?可能还有另一种办法.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...