我有两个宝石pdf阅读器和折纸。每个宝石都有一个名为PDF
的模块。当我按以下顺序打电话给他们时,
# Importing first gem
requires 'pdf/reader'
# Second gem
requires origami
include Origami
PDF::Reader.new(dir) # (first gem)
PDF.read dir # (second gem) #>> undefined method 'read' for PDF:Module (NoMethodError)
第一个gem没有问题,但是当我到达第二个gem时,我犯了一个错误,声称pdf
没有read
方法。但是,如果我先导入“折纸”,然后导入“ pdf /阅读器”,则会出现错误:
PDF is not a module (TypeError)
Ruby对我正在调用的宝石感到困惑。
我该如何指定我在谈论特定的第一颗或第二颗宝石?
答案 0 :(得分:1)
在您的特定示例中,include Origami
是不必要的,我不知道他们为什么将这个示例添加到其README
中。
require 'pdf/reader'
require 'origami'
PDF::Reader.new(dir) # (first gem)
Origami::PDF.read dir # (second gem)
有时可能会执行以下操作:
require 'pdf/reader'
PDFReader = PDF::Reader
require 'origami'
include Origami
PDFReader.new(dir)
PDF.read(dir)