Module: SecureEscrow::Railtie::ActionViewHelperSupportMethods

Defined in:
lib/secure_escrow/railtie.rb

Constant Summary collapse

DATA_ESCROW =
'data-escrow'
IFRAME =
'iframe'
POST =
'POST'

Class Method Summary collapse

Class Method Details

.appObject



40
41
42
# File 'lib/secure_escrow/railtie.rb', line 40

def self.app
  Rails.application
end

.configObject



44
45
46
# File 'lib/secure_escrow/railtie.rb', line 44

def self.config
  app.config.secure_escrow
end

.escrow_options(controller, request, options, method) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/secure_escrow/railtie.rb', line 53

def self.escrow_options controller, request, options, method
  return options unless iframe_necessary?

  # Rewrite URL to point to secure domain
  submission_url = controller.url_for(
    app.routes.recognize_path(options[:url], method: method).
      merge(
        host:     config[:secure_domain_name]     || request.host,
        protocol: config[:secure_domain_protocol] || request.protocol,
        port:     config[:secure_domain_port]     || request.port,
      ))

  options[:url] = submission_url

  # Add data-escrow attribute to the form element
  html_options = options[:html] || {}

  escrow_method = options.delete(:remote) ? IFRAME : POST
  options.merge(html: html_options.merge(DATA_ESCROW => escrow_method))
end

.iframe_necessary?Boolean

Returns:

  • (Boolean)


48
49
50
51
# File 'lib/secure_escrow/railtie.rb', line 48

def self.iframe_necessary?
  config.values_at(:secure_domain_name, :secure_domain_protocol, :secure_domain_port) !=
    config.values_at(:insecure_domain_name, :insecure_domain_protocol, :insecure_domain_port)
end