class SystemNavigation::RubyEnvironment
@api private @since 0.1.0
Public Instance Methods
all_behaviors(&block)
click to toggle source
Execute block
on each class, metaclass, module and module's metaclass.
@return [Enumerator] if block
was given @return [Enumerator] if block
is missing
# File lib/system_navigation/ruby_environment.rb, line 10 def all_behaviors(&block) enum = Enumerator.new do |y| ObjectSpace.each_object(Module) do |klass| y.yield klass y.yield klass.singleton_class end end if block_given? enum.each(&block) else enum end end
all_classes(&block)
click to toggle source
Execute block
on each class (but not its metaclass).
@return [Enumerator] if block
was given @return [Enumerator] if block
is missing
# File lib/system_navigation/ruby_environment.rb, line 30 def all_classes(&block) enum = Enumerator.new do |y| ObjectSpace.each_object(Class) do |klass| y.yield klass end end if block_given? enum.each(&block) else enum end end
all_classes_and_modules(&block)
click to toggle source
Execute block
on each class and module (but not their metaclasses).
@return [Enumerator] if block
was given @return [Enumerator] if block
is missing
# File lib/system_navigation/ruby_environment.rb, line 49 def all_classes_and_modules(&block) enum = Enumerator.new do |y| ObjectSpace.each_object(Module) do |klass| y.yield klass end end if block_given? enum.each(&block) else enum end end
all_modules(&block)
click to toggle source
Execute block
on each module (but not its metaclass).
@return [Enumerator] if block
was given @return [Enumerator] if block
is missing
# File lib/system_navigation/ruby_environment.rb, line 68 def all_modules(&block) enum = Enumerator.new do |y| self.all_classes_and_modules.each do |klass| y.yield(klass) if klass.instance_of?(Module) end end if block_given? enum.each(&block) else enum end end
all_objects(&block)
click to toggle source
Execute block
on each object.
@return [Enumerator] if block
was given @return [Enumerator] if block
is missing
# File lib/system_navigation/ruby_environment.rb, line 87 def all_objects(&block) enum = Enumerator.new do |y| ObjectSpace.each_object do |obj| y.yield obj end end if block_given? enum.each(&block) else enum end end