2014-02-06 6 views
0

У меня есть таблица system_settings, которая имеет столбцы ключа и значения. Ключ выглядит примерно как general.site.something.config, а значение представляет собой простую строку.Путь к динамическому объекту?

Я хотел бы иметь статический класс, который после инициализации считывает настройки и кэширует значения. Кроме того, я хотел бы получить доступ к настройкам с помощью способа OO, например SystemSetting.CACHE.General.Site.Something.Config, чтобы отменить значение для этого ключа. В основном превращение строк в таблицу в дерево.

Есть ли простой способ сделать это в Ruby 1.8.7?

+1

Возможно? Да. Легко? Зависит от вашей точки зрения. Это действительно лучший дизайн, который вы можете придумать? – Phrogz

+0

Наверное, нет. Было более любопытно, если бы это было выполнимо или нет. :) –

ответ

2

TL; DR. Нет. Легко (читайте «встроенный») путь по крайней мере.

Синтаксис, который вы хотите, не так, как все происходит в Ruby (без чрезмерной сантехники, то есть). Чтобы посмотреть на перепланировку, я имею в виду, have a look at the code I wrote for this example, которая демонстрирует желаемую функциональность. Я бы не предложил использовать его, хотя и по той же причине я не размещаю его здесь.

+0

Хороший пример, и это имеет смысл. (Я не буду использовать его в производстве, это скорее упражнение, чтобы понять, как создавать иерархические классы на лету). Благодаря! –

Смежные вопросы