Sha256: 868f980e08a746a007c7494be9a9556b982c3f91d64364f6a228319e5dcf8e1e

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

require 'singleton'

module Wisepdf
  class Configuration
    include Singleton
    cattr_accessor :options
    cattr_accessor :wkhtmltopdf
    
    class << self
      def wkhtmltopdf
        return @@wkhtmltopdf if @@wkhtmltopdf.present?
                
        if @@wkhtmltopdf.nil? && !self.windows?
          @@wkhtmltopdf = (defined?(Bundler) ? `bundle exec which wkhtmltopdf` : `which wkhtmltopdf`).chomp
        end
        return @@wkhtmltopdf 
      end
    
      def configure
        yield self
      end
    
      def reset!
        @@options = {
          :layout => "pdf.html",
          :use_xserver => false
        }
        @@wkhtmltopdf = nil
      end    
    
      def development?
        (defined?(::Rails) && ::Rails.env == 'development') ||
          (defined?(RAILS_ENV) && RAILS_ENV == 'development')
      end
      
      def test?
        (defined?(::Rails) && ::Rails.env == 'test') ||
          (defined?(RAILS_ENV) && RAILS_ENV == 'test')
      end      
      
      def windows?
        RbConfig::CONFIG['target_os'] == 'mingw32'
      end
    end
    
    self.reset!
    
    def method_missing(method)
      self.class.send(method)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
wisepdf-1.1.3 lib/wisepdf/configuration.rb
wisepdf-1.1.2 lib/wisepdf/configuration.rb
wisepdf-1.1.1 lib/wisepdf/configuration.rb
wisepdf-1.1.0 lib/wisepdf/configuration.rb