Я создаю анализатор текста. В идеале это должен быть статический класс:
keywords = Dictionary.parse(text)
Однако парсер (lib / dictionary.rb) должен загрузить некоторые данные (например, stop_words.txt) в память в виде массива.
Поэтому, как я понимаю, это не может быть статический класс, поскольку мне нужен конструктор, который бы загружал эти данные перед использованием синтаксического анализатора.
Тогда:
Библиотека / dictionary.rb
def initialize
@stop_words = load_stop_words
end
модель / entry.rb
def parse
@dictionary = Dictionary.new
self.keywords = @dictionary.parse(self.text)
end
Но насколько это неэффективно? Означает ли это, что если у меня 1000 записей, класс Dictionary загружает «stop_words.txt» 1000 раз, даже если содержимое файла почти постоянно?
Полагаю, мне здесь чего-то не хватает. Должно быть лучшее решение - либо без создания нескольких экземпляров класса Dictionary, либо путем загрузки данных только один раз, когда приложение работает.