Драгоценные камни Ruby могут быть написаны на чистом Ruby или иметь собственные расширения.В этом случае они могут иметь расширение C и / или расширение Java.При установке на Ruby MRI и Rubinius будет использоваться расширение C (и только расширение C).При установке на JRuby будет использоваться расширение Java (и только это).
hpricot имеет оба, чтобы быть совместимым со всеми этими основными реализациями Ruby.