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.