Sha256: bab8e4bb9ebe18690f333fa5d50e3c90146b77507794e4b3597736d58776bc69

Contents?: true

Size: 1.29 KB

Versions: 4

Compression:

Stored size: 1.29 KB

Contents

class Admin::CachingsController < Admin::BaseController
  autoload :FileUtils, 'fileutils'

  def index
    @files = []
    directory = Rails.configuration.action_controller.page_cache_directory
    if directory
      get_file(directory)
    end
  end

  def create
    if params[:commit] == t('caching.delete.all').capitalize
      files = params[:hidden_files]
    else
      files = params[:file]
    end

    if files
      files.values.each do |file|
        unless File.delete(file)
          flash[:error] = t('caching.delete.failed').capitalize
          return redirect_to :action => 'index'
        end
      end
    else
      return redirect_to :action => 'index'
      flash[:error] = t('caching.no_files').capitalize
    end


    begin
      FileUtils.remove_dir(Rails.cache.cache_path, true)
    rescue
      p 'This cache directory does not exist'
    end

    flash[:success] = t('caching.delete.create').capitalize
    return redirect_to :action => 'index'
  end


private

  def get_file(directory)
    dir = Dir.new(directory)
    dir.each do |file|
      path = "#{directory}/#{file}"
      if File.directory?(path)
        @files.delete(path)
        unless file == '.' || file == '..'
          get_file(path)
        end
      else
        @files << [file, path]
      end
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
forgeos_core-1.9.4 app/controllers/admin/cachings_controller.rb
forgeos_core-1.9.3 app/controllers/admin/cachings_controller.rb
forgeos_core-1.9.2 app/controllers/admin/cachings_controller.rb
forgeos_core-1.9.1 app/controllers/admin/cachings_controller.rb