К сожалению, Ruby - это язык, которому не хватает инкапсуляции. Его возможности там весьма ограничены, поэтому нет ничего эквивалентного внутреннему ключевому слову C #. Возможно, в вашем случае лучше использовать два отдельных класса, но чистая строка документации или специальная схема именования могут сделать то же самое без серьезных изменений.
Кроме того, вы должны заметить, что ключевое слово internal - не более чем удобство для разработчиков библиотек. Это не мешает кому-либо использовать метод или класс, помеченный как внутренний, есть способ обойти эту защиту с помощью внедрения кода, AOP и т. Д.