Sha256: 0f8bd8795841c4a820e88272c5a46702deec7bfb9b59cb05ca7110da5d24f5fd

Contents?: true

Size: 1.25 KB

Versions: 4

Compression:

Stored size: 1.25 KB

Contents

require 'singleton'

module Wisepdf
  class Configuration
    include Singleton

    class << self
      attr_accessor :options
      attr_accessor :wkhtmltopdf

      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 = {
          :encoding => "UTF-8",
          :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 production?
        (defined?(::Rails) && ::Rails.env == 'production') ||
          (defined?(RAILS_ENV) && RAILS_ENV == 'production')
      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.3.0 lib/wisepdf/configuration.rb
wisepdf-1.2.10 lib/wisepdf/configuration.rb
wisepdf-1.2.9 lib/wisepdf/configuration.rb
wisepdf-1.2.8 lib/wisepdf/configuration.rb