1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
module ActiveSupport module DependencyModule def append_features(base) return false if base < self (@_dependencies ||= []).each { |dep| base.send(:include, dep) } super end def depends_on(*mods) mods.each do |mod| next if self < mod @_dependencies ||= [] @_dependencies << mod end end end end