ConcurrentHashMap или ConcurrentLinkedQueue или ConcurrentSkipListMap может быть другой опцией, потому что они никогда не будут бросать любое ConcurrentModificationException, даже если вы удалите или добавите элемент.
Под чем Вы подразумеваете "для Ruby"? UML является агностиком языка.
На основе Вашего комментария - UML является универсальной, независимой от языка моделью. Это разработало (от моего понимания), чтобы использоваться, прежде чем язык реализации будет выбран, таким образом, не все элементы UML имеют соответствующие элементы на всех языках (например, - взаимодействует через интерфейс в Ruby). Однако это не означает, что Вы не можете сделать модели UML и реализовать систему, которую они описывают в Ruby.
я рекомендую StarUML для всех потребностей UML.
Визуальная Парадигма является приложением Mac и сделает это для Вас.
Несколько OT, но лучший инструмент UML, который я нашел, называют Архитектор Предприятия - это - Приложение Windows, и он стоит приблизительно 130$ за базовую лицензию. Это не делает Ruby, но это действительно делает Java, C++ и хост других языков, включая полную базу данных к SQL, и поколение и инженерный анализ. Это достойное внимания.
Вы означал просить инструмент, который преобразовывает UML в код Ruby?
я не думаю, что в данный момент существует любой. Но это - очень хорошая идея приложения :)
я нашел , рубин-uml
Генерирует диаграммы UML путем трассировки выполнения приложения для analysation существующего приложения и оказывать поддержку для перефакторизаций.
Железная дорога генерирует диаграммы классов UML для приложений направляющих, включая Модели и Контроллеры, Вы могли бы хотеть смотреть на http://railroad.rubyforge.org/
Я думаю, вы могли бы немного узнать о http://yuml.me , все, что вам нужно сделать, это вывести какой-нибудь текст.