lib/lizarb/ruby/class.rb in lizarb-1.0.4 vs lib/lizarb/ruby/class.rb in lizarb-1.0.5
- old
+ new
@@ -1,17 +1,25 @@
# frozen_string_literal: true
class Class
- public :eval
def descendants
ObjectSpace.each_object(Class).select { |klass| klass < self }
end
+ def and_descendants
+ ObjectSpace.each_object(Class).select { |klass| klass <= self }
+ end
+
+ def ancestors_until klass
+ ancestors.take_while { _1 <= klass }
+ end
+
def first_namespace
name.rpartition('::')[0]
end
def last_namespace
name.rpartition('::')[-1]
end
+
end