Skip to content

Instantly share code, notes, and snippets.

@havenwood
Created December 4, 2019 20:10
Show Gist options
  • Save havenwood/2293003634061f7747d715d65f24c405 to your computer and use it in GitHub Desktop.
Save havenwood/2293003634061f7747d715d65f24c405 to your computer and use it in GitHub Desktop.
BORING = [BasicObject, Object, Module, Exception].freeze
def classes(obj)
obj.constants.map do |constant|
obj.const_get(constant)
end.grep(Class).reject do |klass|
BORING.include?(klass) || klass < Exception
end
end
results = classes(Object).reject do |klass|
klass.name.include? '::'
end.to_h do |klass|
[klass, classes(klass)]
end
pp results
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment