Reputation: 325
I am using the prawn gem to create pdf's. So, to create tables requires using the separate prawn-table gem.
For some reason, I am unable to require the prawn table gem and have no clues as to why.
The result is:
require': cannot load such file -- prawn-table (LoadError)
For some reason, the prawn-table gem cannot be loaded. Why not?
The gems exist in the gem env path (see below):
bundle info prawn
* prawn (2.4.0)
Summary: A fast and nimble PDF generator for Ruby
Homepage: http://prawnpdf.org
Path: /home/cb/.gem/ruby/2.6.6/gems/prawn-2.4.0
bundle info prawn-table
* prawn-table (0.2.2)
Summary: Provides tables for PrawnPDF
Homepage: https://github.com/prawnpdf/prawn-table
Path: /home/cb/.gem/ruby/2.6.6/gems/prawn-table-0.2.2
I call the prawn generator like so...
require 'prawn'
require 'prawn/measurement_extensions'
require 'prawn-table'
def generate_pdf(invoice, mode)
Prawn::Document.generate(invoice.file, margin_top: 0, page_size: 'A4',
info:
{...
which results in:
invoicer generate --mode development
Traceback (most recent call last):
20: from ./bin/invoicer:4:in `<main>'
19: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require'
18: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require'
17: from /home/cb/work/invoicer/lib/invoicer.rb:15:in `<top (required)>'
16: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `require'
15: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:299:in `load_dependency'
14: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `block in require'
13: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
12: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
11: from /home/cb/work/invoicer/lib/invoicer/invoice_process.rb:5:in `<top (required)>'
10: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `require'
9: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:299:in `load_dependency'
8: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `block in require'
7: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
6: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
5: from /home/cb/work/invoicer/lib/invoicer/generate_pdf.rb:4:in `<top (required)>'
4: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `require'
3: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:299:in `load_dependency'
2: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `block in require'
1: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
/home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require': cannot load such file -- prawn-table (LoadError)
My gem env looks like this:
RubyGems Environment:
- RUBYGEMS VERSION: 3.2.14
- RUBY VERSION: 2.6.6 (2020-03-31 patchlevel 146) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/cb/.gem/ruby/2.6.6
- USER INSTALLATION DIRECTORY: /home/cb/.gem/ruby/2.6.0
- RUBY EXECUTABLE: /home/cb/.rubies/ruby-2.6.6/bin/ruby
- GIT EXECUTABLE: /usr/bin/git
- EXECUTABLE DIRECTORY: /home/cb/.gem/ruby/2.6.6/bin
- SPEC CACHE DIRECTORY: /home/cb/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /home/cb/.rubies/ruby-2.6.6/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/cb/.gem/ruby/2.6.6
- /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- SHELL PATH:
- /home/cb/.gem/ruby/2.6.6/bin
- /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/bin
- /home/cb/.rubies/ruby-2.6.6/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
- /usr/local/games
- /snap/bin
- .
- bin
rails 6.1 load path
rails c
Loading development environment (Rails 6.1.3)
irb(main):001:0> $:
[
[ 0] "/home/cb/work/invoicer/lib",
[ 1] "/home/cb/work/invoicer/vendor",
[ 2] "/home/cb/work/invoicer/app/helpers",
[ 3] "/home/cb/work/invoicer/app/mailers",
[ 4] "/home/cb/work/invoicer/app/models",
[ 5] "/home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/actionview-6.1.3/lib",
[ 6] "/home/cb/work/invoicer",
[ 7] "/home/cb/.gem/ruby/2.6.6/gems/whenever-1.0.0/lib",
[ 8] "/home/cb/.gem/ruby/2.6.6/gems/web-console-4.1.0/lib",
[ 9] "/home/cb/.gem/ruby/2.6.6/gems/sqlite3-1.4.2/lib",
[10] "/home/cb/.gem/ruby/2.6.6/extensions/x86_64-linux/2.6.0-static/sqlite3-1.4.2",
[11] "/home/cb/.gem/ruby/2.6.6/gems/rails-6.1.3/lib",
[12] "/home/cb/.gem/ruby/2.6.6/gems/sprockets-rails-3.2.2/lib",
[13] "/home/cb/.gem/ruby/2.6.6/gems/sprockets-4.0.2/lib",
[14] "/home/cb/.gem/ruby/2.6.6/gems/railties-6.1.3/lib",
[15] "/home/cb/.gem/ruby/2.6.6/gems/thor-1.1.0/lib",
[16] "/home/cb/.gem/ruby/2.6.6/gems/rack-mini-profiler-2.3.1/lib",
[17] "/home/cb/.gem/ruby/2.6.6/gems/prawn-table-0.2.2/lib",
[18] "/home/cb/.gem/ruby/2.6.6/gems/prawn-2.4.0/lib",
[19] "/home/cb/.gem/ruby/2.6.6/gems/ttfunk-1.7.0/lib",
[20] "/home/cb/.gem/ruby/2.6.6/gems/pdf-core-0.9.0/lib",
[21] "/home/cb/.gem/ruby/2.6.6/gems/method_source-1.0.0/lib",
.
.
.
[93] "/home/cb/.rubies/ruby-2.6.6/lib/ruby/2.6.0",
[94] "/home/cb/.rubies/ruby-2.6.6/lib/ruby/2.6.0/x86_64-linux"
]
Upvotes: 1
Views: 1117
Reputation: 106782
IMO instead of
require "prawn-table"
you should use
require "prawn/table"
Upvotes: 3