RoR - где поставить / инициализировать константу для модуля lib - PullRequest
1 голос
/ 05 января 2011

В моем приложении на Rails 3 у меня есть модуль в папке lib /. Для модуля требуется постоянная переменная - большой словарь, загружаемый из файла данных. Так как словарь не будет меняться в течение приложения и его перезагрузка файла данных будет происходить при каждом вызове метода из модуля, я хочу создать константу, которая содержит словарь, к которому модуль может обращаться Lib.

Библиотека / my_module:

module My_Module
   def do_something(x)
      y = CONSTANTVAR[x]
      ...
   end
end

чтобы инициализировать константу, мне нужно загрузить файл:

file = File.new('dataFile.dat','r') #I'm not sure where to put this data file
file.each_line { |line|
             lineInfo = line.split
             CONSTANTVAR[line[0]] = line[1] }
file.close

Где находится стандартное место для инициализации переменных, к которому могут обращаться модули в папке lib (это единственное место, к которому я буду обращаться к переменной)?

Кроме того, модуль загружает файл данных, является ли стандартным размещение файлов данных в папке lib /?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 января 2011

Вы можете посмотреть, как это делается здесь: https://github.com/sevenwire/forgery

Это библиотека для генерации слов и использует словари. Они сохраняются в: / lib / подделка / словарь / *

Итак, сохраните ваш словарь на /lib/module-name/dictionaries/DATA.dat

И вы можете инициализировать вашу переменную в config / initialisers / module-name.rb

0 голосов
/ 05 января 2011

Я должен поместить мой, скажем, init_dictionary.rb в config / initializer Я думаю, что это лучшее место для вашего требования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...