Class: RFPDF::TemplateHandler::CompileSupport

Inherits:
Object
  • Object
show all
Defined in:
lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (CompileSupport) initialize(controller)

Returns a new instance of CompileSupport



9
10
11
12
13
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 9

def initialize(controller)
  @controller = controller
  @options = pull_options
  set_headers
end

Instance Attribute Details

- (Object) options (readonly)

extend ActiveSupport::Memoizable



7
8
9
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 7

def options
  @options
end

Instance Method Details

- (Boolean) ie_request?

TODO: kept around from railspdf– maybe not needed anymore? should check.

Returns:

  • (Boolean)


27
28
29
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 27

def ie_request?
  @controller.request.env['HTTP_USER_AGENT'] =~ /msie/i
end

- (Object) pull_options



15
16
17
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 15

def pull_options
  @controller.send :compute_rfpdf_options || {}
end

- (Object) set_cache_control

TODO: kept around from railspdf– maybe not needed anymore? should check.



49
50
51
52
53
54
55
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 49

def set_cache_control
  if ssl_request? && ie_request?
    @controller.headers['Cache-Control'] = 'maxage=1' # added to make ie ssl pdfs work (per naisayer)
  else
    @controller.headers['Cache-Control'] ||= ie_request? ? 'no-cache, must-revalidate' : ''
  end
end

- (Object) set_content_type



57
58
59
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 57

def set_content_type
  @controller.response.content_type ||= Mime::PDF
end

- (Object) set_disposition



61
62
63
64
65
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 61

def set_disposition
  inline = options[:inline] ? 'inline' : 'attachment'
  filename = options[:filename] ? "filename=#{options[:filename]}" : nil
  @controller.headers["Content-Disposition"] = [inline,filename].compact.join(';')
end

- (Object) set_headers



19
20
21
22
23
24
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 19

def set_headers
  set_pragma
  set_cache_control
  set_content_type
  set_disposition
end

- (Object) set_pragma

TODO: kept around from railspdf– maybe not needed anymore? should check.



40
41
42
43
44
45
46
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 40

def set_pragma
  if ssl_request? && ie_request?
    @controller.headers['Pragma'] = 'public' # added to make ie ssl pdfs work (per naisayer)
  else
    @controller.headers['Pragma'] ||= ie_request? ? 'no-cache' : ''
  end
end

- (Boolean) ssl_request?

added to make ie happy with ssl pdf's (per naisayer)

Returns:

  • (Boolean)


33
34
35
36
# File 'lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb', line 33

def ssl_request?
  # @controller.request.env['SERVER_PROTOCOL'].downcase == "https"
  @controller.request.ssl?
end