Sha256: 02e5d5b0d88bbfcb8ed4b0ebfa079ae9f8a63ecc46d11ae98ee00a7546e74235

Contents?: true

Size: 372 Bytes

Versions: 9

Compression:

Stored size: 372 Bytes

Contents

module FistOfFury
  module SubclassTracking
    def subclasses(deep = false)
      @subclasses ||= []

      if deep
        @subclasses.inject([]) do |result, subclass|
          (result << subclass) + subclass.subclasses(true)
        end
      else
        @subclasses
      end
    end

    def inherited(klass)
      super
      subclasses << klass
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
fist_of_fury-0.3.1 lib/fist_of_fury/subclass_tracking.rb
fist_of_fury-0.3.0 lib/fist_of_fury/subclass_tracking.rb
fist_of_fury-0.2.7 lib/fist_of_fury/subclass_tracking.rb
fist_of_fury-0.2.6 lib/fist_of_fury/subclass_tracking.rb
fist_of_fury-0.2.5 lib/fist_of_fury/subclass_tracking.rb
fist_of_fury-0.2.1 lib/fist_of_fury/subclass_tracking.rb
fist_of_fury-0.2.0 lib/fist_of_fury/subclass_tracking.rb
fist_of_fury-0.1.0 lib/fist_of_fury/subclass_tracking.rb
fist_of_fury-0.0.1 lib/fist_of_fury/subclass_tracking.rb