diff --git a/Gemfile.lock b/Gemfile.lock index af661ec..7a6c93d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,6 +4,7 @@ PATH phlex-pdf (0.1.2) matrix (~> 0.4) prawn (~> 2.0) + zeitwerk (~> 2.0) GEM remote: https://rubygems.org/ @@ -41,6 +42,7 @@ GEM rspec-support (3.13.0) ruby-rc4 (0.1.5) ttfunk (1.7.0) + zeitwerk (2.6.13) PLATFORMS arm64-darwin-23 diff --git a/lib/phlex/pdf.rb b/lib/phlex/pdf.rb index dff299b..7227461 100644 --- a/lib/phlex/pdf.rb +++ b/lib/phlex/pdf.rb @@ -3,9 +3,16 @@ require_relative "pdf/version" require "prawn" require "matrix" +require "zeitwerk" module Phlex class PDF + Loader = Zeitwerk::Loader.for_gem.tap do |loader| + loader.ignore "#{__dir__}/generators" + loader.inflector.inflect("pdf" => "PDF") + loader.setup + end + include Prawn::View def document = @document diff --git a/lib/phlex/pdf/rails/helpers.rb b/lib/phlex/pdf/rails/helpers.rb new file mode 100644 index 0000000..def0eeb --- /dev/null +++ b/lib/phlex/pdf/rails/helpers.rb @@ -0,0 +1,11 @@ +module Phlex::PDF::Rails::Helpers + # Sends a PDF to the browser via Rails controllers. + def send_pdf(pdf, disposition: "inline", type: "application/pdf", **kwargs) + send_data( + pdf.to_pdf, + disposition: disposition, + type: type, + **kwargs + ) + end +end diff --git a/phlex-pdf.gemspec b/phlex-pdf.gemspec index 05d0448..f1bc156 100644 --- a/phlex-pdf.gemspec +++ b/phlex-pdf.gemspec @@ -35,6 +35,7 @@ Gem::Specification.new do |spec| # Uncomment to register a new dependency of your gem spec.add_dependency "prawn", "~> 2.0" spec.add_dependency "matrix", "~> 0.4" + spec.add_dependency "zeitwerk", "~> 2.0" spec.add_development_dependency("pdf-inspector", "~> 1.0")