To avoid duplicating the ruby compilation code, this change exposes two
functions `mkRubyVersion` and `mkRuby`, which can be used in an overlay
to build any past or current ruby version.
An example overlay:
```nix
self: super:
{
ruby_2_7_6 = super.mkRuby {
version = super.mkRubyVersion "2" "7" "6" "";
sha256 = "042xrdk7hsv4072bayz3f8ffqh61i8zlhvck10nfshllq063n877";
};
ruby_3_1_2 = super.mkRuby {
version = super.mkRubyVersion "3" "1" "2" "";
sha256 = "0gm84ipk6mrfw94852w5h7xxk2lqrxjbnlwb88svf0lz70933131";
};
}
```