Module: Biovision::Base::BaseMethods

Extended by:
ActiveSupport::Concern
Defined in:
lib/biovision/base/base_methods.rb

Overview

Useful methods and helpers for ApplicationController

Instance Method Summary collapse

Instance Method Details

#agentAgent

Returns:



51
52
53
# File 'lib/biovision/base/base_methods.rb', line 51

def agent
  @agent ||= Agent.named(request.user_agent || 'n/a')
end

#current_languageLanguage

Get current language from locale

Returns:



46
47
48
# File 'lib/biovision/base/base_methods.rb', line 46

def current_language
  @current_language ||= Language.find_by(code: locale)
end

#current_pageInteger

Get current page number from request

Returns:

  • (Integer)


21
22
23
# File 'lib/biovision/base/base_methods.rb', line 21

def current_page
  @current_page ||= (params[:page] || 1).to_s.to_i.abs
end

#current_userUser|nil

Get current user from token cookie

Returns:



39
40
41
# File 'lib/biovision/base/base_methods.rb', line 39

def current_user
  @current_user ||= Token.user_by_token(cookies['token'], true)
end

#param_from_request(*param) ⇒ String

Get parameter from request and normalize it

Casts request parameter to UTF-8 string and removes invalid characters

Parameters:

  • param (Symbol)

Returns:

  • (String)


31
32
33
34
# File 'lib/biovision/base/base_methods.rb', line 31

def param_from_request(*param)
  value = params.dig(*param)
  value.to_s.encode('UTF-8', 'UTF-8', invalid: :replace, replace: '')
end

#set_localeObject



64
65
66
# File 'lib/biovision/base/base_methods.rb', line 64

def set_locale
  I18n.locale = params[:locale] || I18n.default_locale
end

#visitor_slugString

Returns:

  • (String)


56
57
58
59
60
61
62
# File 'lib/biovision/base/base_methods.rb', line 56

def visitor_slug
  if current_user.nil?
    "#{request.env['HTTP_X_REAL_IP'] || request.remote_ip}:#{agent.id}"
  else
    current_user.id.to_s
  end
end