<commit_before># encoding: utf-8
require "application_responder"

class ApplicationController < ActionController::Base

  self.responder = ApplicationResponder
  respond_to :html

  before_filter :agregar_parametros_permitidos, if: :devise_controller?

  protect_from_forgery with: :reset_session

  # Cancan
  def current_user
    current_usuario
  end

  # Forem
  alias_method :forem_user, :current_user

  # Asegura que revisemos la autorización en cada acción, excepto en los
  # controladores de devise
  check_authorization unless: :devise_controller?

  # Recupera las excepciones por tratar de acceder a un recurso sin
  # autorización
  rescue_from CanCan::AccessDenied do |e|
    flash[:error] = I18n.t 'unauthorized.default'
    volver
  end

  rescue_from ActionController::RoutingError do |e|
    @mensaje = e.message
    respond_to do |format|
      format.html { render 'errores/404', status: 404 }
      format.json { render json: @mensaje, status: 404 }
    end
  end

  helper_method :tipo_actual, :activo?, :coleccion_actual, :coleccion_path,
                :reserva_actual, :reserva_path, :forem_user

  protected

    def agregar_parametros_permitidos
      devise_parameter_sanitizer.for(:account_update) << [
        :nick, :codigo, :nombre ]
      devise_parameter_sanitizer.for(:sign_up) << [
        :nick, :codigo, :nombre ]
    end

    # Redirije hacia atrás o en caso de no exister, vuelve al inicio
    def volver
      session[:loop].nil? ? session[:loop] = 1 : session[:loop] += 1
      begin
        raise ActionController::RedirectBackError if session[:loop] == 5
        redirect_to :back
      rescue ActionController::RedirectBackError
        session.delete :loop
        redirect_to :root
      end
    end

    # Para determinar el elemento activo de la paginación. En el controlador
    # porque usa params
    def activo?(elemento)
      elemento == params[:mostrar].try(:[], :cantidad)
    end

    # En el controlador porque usa params
    def tipo_actual(tipo = nil)
      (@tipo ||= (tipo || params[:tipo])).try :to_sym
    end

    def no_existe
      raise ActionController::RoutingError.new(
        'No existe este registro en la Biblioteca del Éter o en la red...'
      )
    end

    def check_espia
      if @carta.present? and @carta.slug =~ /cyborg-espia/
        no_existe
      end
    end

    def coleccion_actual
      current_usuario.try(:coleccion)
    end

    def coleccion_path(args = nil)
      usuario_coleccion_path(current_usuario, args)
    end

    def reserva_actual
      current_usuario.try(:reserva)
    end

    def reserva_path(args = nil)
      usuario_reserva_path(current_usuario, args)
    end

    # Para los mensajes de responders. Tenemos mayoría de modelos femeninos
    def interpolation_options
      {
        del: 'de la',
        cita_crear: Cita.random_para(:crear),
        cita_actualizar: Cita.random_para(:actualizar),
        cita_destruir: Cita.random_para(:destruir),
        falla: falla
      }
    end

    # Para especificar en cada acción el mensaje de falla
    def falla
      @falla || '¿Por qué no pruebas de nuevo?'
    end
end
<commit_msg>Usar null session para el request en vez de resetearla<commit_after># encoding: utf-8
require "application_responder"

class ApplicationController < ActionController::Base

  self.responder = ApplicationResponder
  respond_to :html

  before_filter :agregar_parametros_permitidos, if: :devise_controller?

  protect_from_forgery with: :null_session

  # Cancan
  def current_user
    current_usuario
  end

  # Forem
  alias_method :forem_user, :current_user

  # Asegura que revisemos la autorización en cada acción, excepto en los
  # controladores de devise
  check_authorization unless: :devise_controller?

  # Recupera las excepciones por tratar de acceder a un recurso sin
  # autorización
  rescue_from CanCan::AccessDenied do |e|
    flash[:error] = I18n.t 'unauthorized.default'
    volver
  end

  rescue_from ActionController::RoutingError do |e|
    @mensaje = e.message
    respond_to do |format|
      format.html { render 'errores/404', status: 404 }
      format.json { render json: @mensaje, status: 404 }
    end
  end

  helper_method :tipo_actual, :activo?, :coleccion_actual, :coleccion_path,
                :reserva_actual, :reserva_path, :forem_user

  protected

    def agregar_parametros_permitidos
      devise_parameter_sanitizer.for(:account_update) << [
        :nick, :codigo, :nombre ]
      devise_parameter_sanitizer.for(:sign_up) << [
        :nick, :codigo, :nombre ]
    end

    # Redirije hacia atrás o en caso de no existir, vuelve al inicio
    def volver
      session[:loop].nil? ? session[:loop] = 1 : session[:loop] += 1
      begin
        raise ActionController::RedirectBackError if session[:loop] == 5
        redirect_to :back
      rescue ActionController::RedirectBackError
        session.delete :loop
        redirect_to :root
      end
    end

    # Para determinar el elemento activo de la paginación. En el controlador
    # porque usa params
    def activo?(elemento)
      elemento == params[:mostrar].try(:[], :cantidad)
    end

    # En el controlador porque usa params
    def tipo_actual(tipo = nil)
      (@tipo ||= (tipo || params[:tipo])).try :to_sym
    end

    def no_existe
      raise ActionController::RoutingError.new(
        'No existe este registro en la Biblioteca del Éter o en la red...'
      )
    end

    def check_espia
      if @carta.present? and @carta.slug =~ /cyborg-espia/
        no_existe
      end
    end

    def coleccion_actual
      current_usuario.try(:coleccion)
    end

    def coleccion_path(args = nil)
      usuario_coleccion_path(current_usuario, args)
    end

    def reserva_actual
      current_usuario.try(:reserva)
    end

    def reserva_path(args = nil)
      usuario_reserva_path(current_usuario, args)
    end

    # Para los mensajes de responders. Tenemos mayoría de modelos femeninos
    def interpolation_options
      {
        del: 'de la',
        cita_crear: Cita.random_para(:crear),
        cita_actualizar: Cita.random_para(:actualizar),
        cita_destruir: Cita.random_para(:destruir),
        falla: falla
      }
    end

    # Para especificar en cada acción el mensaje de falla
    def falla
      @falla || '¿Por qué no pruebas de nuevo?'
    end
end

{'fraction_non_alphanumeric': 0.08007566204287515, 'fraction_numerical': 0.004728877679697352, 'mean_word_length': 2.9705882352941178, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6600987', 'n_tokens_mistral': 2125, 'n_tokens_neox': 2086, 'n_words': 547}