willyab
willyab

Reputation: 325

rails 6.1: cannot load such file -- prawn-table

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

Answers (1)

spickermann
spickermann

Reputation: 106782

IMO instead of

require "prawn-table"

you should use

require "prawn/table"

Upvotes: 3

Related Questions