diff options
Diffstat (limited to 'scripts/switch-to-prawn-head.rb')
| -rw-r--r-- | scripts/switch-to-prawn-head.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/scripts/switch-to-prawn-head.rb b/scripts/switch-to-prawn-head.rb new file mode 100644 index 00000000..438e1021 --- /dev/null +++ b/scripts/switch-to-prawn-head.rb @@ -0,0 +1,27 @@ +require 'fileutils' + +# NOTE it's necessary to hot patch the installed gem so that RubyGems can find it without Bundler +prawn_spec = Gem::Specification.find_by_name 'prawn' +FileUtils.rm_r prawn_spec.gem_dir, secure: true if Dir.exist? prawn_spec.gem_dir +Process.wait Process.spawn %(git clone --depth=1 https://github.com/prawnpdf/prawn #{File.basename prawn_spec.gem_dir}), chdir: prawn_spec.gems_dir + +prawn_spec_replacement = nil + +# Option A: patch dependency versions +#new_prawn_spec_contents = File.read (File.join prawn_spec.gem_dir, 'prawn.gemspec'), mode: 'r:UTF-8' +#ttfunk_version_spec = (%r/'ttfunk', *'(.+?)'/.match new_prawn_spec_contents)[1] +#pdf_core_version_spec = (%r/'pdf-core', *'(.+?)'/.match new_prawn_spec_contents)[1] +#prawn_spec_replacement = prawn_spec +# .to_ruby +# .gsub(%r/(ttfunk.+?)"[^"]+"/, %(\\1"#{ttfunk_version_spec}")) +# .gsub(%r/(pdf-core.+?)"[^"]+"/, %(\\1"#{pdf_core_version_spec}")) + +# Option B: regenerate spec file +Dir.chdir prawn_spec.gem_dir do + new_prawn_spec_contents = File.readlines 'prawn.gemspec', mode: 'r:UTF-8' + new_prawn_spec = eval new_prawn_spec_contents.join, nil, (File.join prawn_spec.gem_dir, 'prawn.gemspec') + new_prawn_spec.version = prawn_spec.version + prawn_spec_replacement = new_prawn_spec.to_ruby +end + +File.write prawn_spec.spec_file, prawn_spec_replacement |
