Module: Ress::ControllerAdditions

Defined in:
lib/ress/controller_additions.rb

Overview

This module is automatically included into all controllers.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



6
7
8
9
10
11
# File 'lib/ress/controller_additions.rb', line 6

def self.included(base)
  base.helper_method :canonical_request?
  base.helper_method :force_canonical_url
  base.before_filter :set_force_canonical_cookie
  base.before_filter :prepend_alternate_view_path
end

Instance Method Details

#canonical_request?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/ress/controller_additions.rb', line 25

def canonical_request?
  Ress.canonical_version.matches?(request.subdomain)
end

#force_canonical_urlObject



29
30
31
32
33
34
35
# File 'lib/ress/controller_additions.rb', line 29

def force_canonical_url
  path = "#{request.host_with_port}#{request.fullpath}"
  url = Ress.canonical_version.url(request.protocol, path, request.subdomain)
  sep = url.include?('?') ? '&' : '?'

  "#{url}#{sep}force_canonical=1"
end

#prepend_alternate_view_pathObject



19
20
21
22
23
# File 'lib/ress/controller_additions.rb', line 19

def prepend_alternate_view_path
  Ress.alternate_versions.each do |cat|
    prepend_view_path(cat.view_path) if cat.matches?(request.subdomain)
  end
end


13
14
15
16
17
# File 'lib/ress/controller_additions.rb', line 13

def set_force_canonical_cookie
  if params[:force_canonical]
     cookies[:force_canonical] = 'true'
  end
end