Method: GetText::ClassInfo#related_classes_internal
- Defined in:
- lib/gettext/class_info.rb
#related_classes_internal(klass, all_classes = [], analyzed_classes = []) ⇒ Object
Internal method for related_classes.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/gettext/class_info.rb', line 24 def (klass, all_classes = [], analyzed_classes = [] ) ret = [] klass = normalize_class(klass) return [Object] if root_ancestors.include? klass ary = klass.name.split(/::/) while(v = ary.shift) ret.unshift(((ret.size == 0) ? Object.const_get(v) : ret[0].const_get(v))) end ret -= analyzed_classes if ret.size > 1 ret += (ret[1], all_classes, analyzed_classes) ret.uniq! end analyzed_classes << klass unless analyzed_classes.include? klass klass.ancestors.each do |a| next if a == klass ret += (a, all_classes, analyzed_classes) ret.uniq! end if all_classes.size > 0 (ret & all_classes).uniq else ret.uniq end end |