Using require_relative can cause files to be loaded multiple times. An example project was created to show off this issue with rspec.
Here is the issue being exposed using prawn.
rrosenblum@C02NV0KSG3QN:~/work/test$ ls -la
total 32
drwxr-xr-x 8 rrosenblum staff 272 Mar 18 14:12 .
drwxr-xr-x 44 rrosenblum staff 1496 Mar 17 18:58 ..
drwxr-xr-x 3 rrosenblum staff 102 Mar 17 18:59 .bundle
-rw-r--r-- 1 rrosenblum staff 6 Mar 17 18:58 .ruby-version
-rw-r--r-- 1 rrosenblum staff 52 Mar 18 14:12 Gemfile
-rw-r--r-- 1 rrosenblum staff 225 Mar 18 14:12 Gemfile.lock
drwxr-xr-x 3 rrosenblum staff 102 Mar 17 18:59 vendor
lrwxr-xr-x 1 rrosenblum staff 6 Mar 17 18:59 vendor2 -> vendor
rrosenblum@C02NV0KSG3QN:~/work/test$ cat Gemfile
source 'https://rubygems.org'
gem 'prawn', '2.2.2'
rrosenblum@C02NV0KSG3QN:~/work/test$ bundle config
Settings are listed in order of priority. The top value will be used.
jobs
Set for the current user (/Users/rrosenblum/.bundle/config): "3"
path
Set for your local app (/Users/rrosenblum/work/test/.bundle/config): "vendor2/bundle"
Set for the current user (/Users/rrosenblum/.bundle/config): "vendor/bundle"
disable_shared_gems
Set for your local app (/Users/rrosenblum/work/test/.bundle/config): "true"
rrosenblum@C02NV0KSG3QN:~/work/test$ bundle exec irb
irb(main):001:0> require 'prawn'
/Users/rrosenblum/work/test/vendor2/bundle/ruby/2.3.0/gems/pdf-core-0.7.0/lib/pdf/core/text.rb:12: warning: already initialized constant PDF::Core::Text::VALID_OPTIONS
/Users/rrosenblum/work/test/vendor/bundle/ruby/2.3.0/gems/pdf-core-0.7.0/lib/pdf/core/text.rb:12: warning: previous definition of VALID_OPTIONS was here
/Users/rrosenblum/work/test/vendor2/bundle/ruby/2.3.0/gems/pdf-core-0.7.0/lib/pdf/core/text.rb:13: warning: already initialized constant PDF::Core::Text::MODES
/Users/rrosenblum/work/test/vendor/bundle/ruby/2.3.0/gems/pdf-core-0.7.0/lib/pdf/core/text.rb:13: warning: previous definition of MODES was here
=> true
irb(main):002:0>
Thank you for your contribution but I decline this PR. See prawnpdf/prawn#1013 for detailed explanation. I will close this PR now. Feel free to reopen if you anything to add to discussion.
Using
require_relative
can cause files to be loaded multiple times. An example project was created to show off this issue with rspec.Here is the issue being exposed using prawn.