У меня есть модуль, который живет в моем приложении Rails как lib / render_graphs.rb.Это выглядит так:
require 'gnuplot'
module RenderGraphs
def render_standard_curve_graph(standard_curve, params, term = nil, output = nil)
Gnuplot.open do |gp|
# do things
end
end
end
if __FILE__ == $0
include RenderGraphs
render_standard_curve_graph(...)
end
Если я вызову его в командной строке с ruby -r rubygems render_graphs.rb
, все будет работать нормально.Но если я пытаюсь вызвать render_standard_curve_graph из моего приложения Rails (я вызываю его из контроллера, который включает в себя RenderGraphs) или из консоли Rails, это выдает ошибку вроде:
NameError: uninitialized constant RenderGraphs::Gnuplot
from .../lib/render_graphs.rb:31:in `render_standard_curve_graph'
from (irb):32
Если я запускаю require '/Library/Ruby/Gems/1.8/gems/gnuplot-2.3.6/lib/gnuplot.rb'
на консоли Rails, прежде чем я вызову render_standard_curve_graph
, он работает просто отлично.Что не так с gem 'gnuplot'
в моем Gemfile?bundle show gnuplot
приводит к /Library/Ruby/Gems/1.8/gems/gnuplot-2.3.6...
Я сбит с толку.gnuplot находится в моем Gemfile, и я запустил пакетную установку и перезапустил консоль (несколько раз).Подобные вызовы других гемов (GSL и roo) прекрасно работают из других модулей в моей директории lib.Чего мне не хватает?