Ruby Under a Microscope: Learning Ruby Internals Through Experiment