defined
defined copied to clipboard
Calls Module#defined after a ruby class or module is (re)defined
= defined
Calls Module#defined after a class or module has been defined or redefined
Note: relies on {Kernel#set_trace_func}[http://www.ruby-doc.org/core/classes/Kernel.html#M001430]
== Installation
gem install defined
== Usage
Defined.enable!
class User def self.defined(file, line, method) puts " defined by #{file}:#{line} with #{method}" end
puts 'in original class definition'
end
User.class_eval do puts 'in class_eval' end
class User puts 'in class definition again' end
Class.new(User) do puts 'in Class.new' end
=== Outputs
in original class definition defined by /tmp/untitled.rb:1 with class in class_eval defined by /tmp/untitled.rb:9 with class_eval in class definition again defined by /tmp/untitled.rb:13 with class in Class.new defined by /tmp/untitled.rb:17 with initialize
==== Note the method in the last example is initialize NOT new
== Patches and pull requests
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send me a pull request. Bonus points for topic branches.