aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/module/inclusion.rb
blob: 124c4551bc1a794d697b72e182b4bb8c4e0f9361 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Module
  def remove_classes_including
    included_in_classes.each { |klass| Class.remove_class(klass) }
  end
  
  def included_in_classes
    classes = []
    ObjectSpace.each_object(Class) { |k| classes << k if k.included_modules.include?(self) }

    classes.reverse.inject([]) do |unique_classes, klass| 
      unique_classes << klass unless unique_classes.collect { |k| k.to_s }.include?(klass.to_s)
      unique_classes
    end
  end
end