Module: RailsBase::CaptureReferenceHelper

Included in:
RailsBaseApplicationController
Defined in:
app/helpers/rails_base/capture_reference_helper.rb

Constant Summary collapse

CAPTURE_CONTROLLER_PATH =
:referer_controller_path
CAPTURE_ACTION_NAME =
:referer_action_name
CAPTURE_REFERRED_PATH =
:referer_referred_path

Instance Method Summary collapse

Instance Method Details

#authenticate_user!Object



7
8
9
10
11
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 7

def authenticate_user!
  # only if request is a get and not authenticated
  capture_reference if request.method == 'GET' && !warden.authenticated?
  super()
end

#capture_and_clear_reference_redirect!Object



45
46
47
48
49
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 45

def capture_and_clear_reference_redirect!
  temp = reference_redirect
  capture_clear_reference_from_sesssion!
  temp[:path]
end

#capture_clear_reference_from_sesssion!Object



21
22
23
24
25
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 21

def capture_clear_reference_from_sesssion!
  session[CAPTURE_CONTROLLER_PATH] = nil
  session[CAPTURE_ACTION_NAME] = nil
  session[CAPTURE_REFERRED_PATH] = nil
end

#capture_referenceObject



13
14
15
16
17
18
19
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 13

def capture_reference
  return unless use_capture_reference?

  session[CAPTURE_CONTROLLER_PATH] = controller_path
  session[CAPTURE_ACTION_NAME] = action_name
  session[CAPTURE_REFERRED_PATH] = request.path
end

#redirect_from_referenceObject



51
52
53
54
55
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 51

def redirect_from_reference
  return nil unless use_capture_reference?

  capture_and_clear_reference_redirect!
end

#reference_redirectObject



41
42
43
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 41

def reference_redirect
  { controller: session[CAPTURE_CONTROLLER_PATH], action: session[CAPTURE_ACTION_NAME], path: session[CAPTURE_REFERRED_PATH] }
end

#skip_capture_reference!Object



33
34
35
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 33

def skip_capture_reference!
  @__skip_capture_reference = true
end

#skip_capture_reference?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 37

def skip_capture_reference?
  @__skip_capture_reference.presence
end

#use_capture_reference?Boolean

Returns:

  • (Boolean)


27
28
29
30
31
# File 'app/helpers/rails_base/capture_reference_helper.rb', line 27

def use_capture_reference?
  return false if skip_capture_reference?

  RailsBase.config..fallback_to_referred
end