Froze rails gems
[depot.git] / vendor / rails / activesupport / lib / active_support / core_ext / module / inclusion.rb
1 class Module
2 # Returns the classes in the current ObjectSpace where this module has been
3 # mixed in according to Module#included_modules.
4 #
5 # module M
6 # end
7 #
8 # module N
9 # include M
10 # end
11 #
12 # class C
13 # include M
14 # end
15 #
16 # class D < C
17 # end
18 #
19 # p M.included_in_classes # => [C, D]
20 #
21 def included_in_classes
22 classes = []
23 ObjectSpace.each_object(Class) { |k| classes << k if k.included_modules.include?(self) }
24
25 classes.reverse.inject([]) do |unique_classes, klass|
26 unique_classes << klass unless unique_classes.collect { |k| k.to_s }.include?(klass.to_s)
27 unique_classes
28 end
29 end
30 end