Я новичок в рельсах и делаю какую-то ошибку noob: мне часто приходится подсчитывать количество строк в файле, поэтому я пытаюсь использовать класс патчей для обезьян:
class File
def self.line_count( filename )
%x{wc -l #{filename}}.split.first.to_i
end
end
Я сохранил это в /lib/file _util.rb. Я думал, что это должно быть автоматически необходимо, чтобы я мог просто использовать его, но это не работает:
$ rails console
>> File.line_count('Gemfile')
NoMethodError: undefined method `line_count' for File:Class
...
Итак, я стараюсь требовать его вручную, без радости:
>> require '<myproj>/lib/file_util.rb' # same result with require 'file_util.rb'
=>nil
Но он работает, если я требую его в IRB:
$ irb
>> require '<myproj>/lib/file_util.rb'
=> true
>> File.line_count('Gemfile')
=> 22
Я также попытался добавить запрос в config/application.rb:
...
Bundler.require(:default, Rails.env) if defined?(Bundler)
require 'file_util.rb'
module <myproj>
...
и я получаю:
$ rails console
<myproj>/config/application.rb:9:in `require': no such file to load -- file_util.rb (LoadError)
Что я делаю неправильно?