Sha256: bb47f48649886e0bdd630b2de4edd640cd4d0f02ed39844da91bb1b2755053c7

Contents?: true

Size: 1004 Bytes

Versions: 3

Compression:

Stored size: 1004 Bytes

Contents

require_dependency "morion/application_controller"

module Morion
  class MorionController < ApplicationController
    def index
      root = Rails.root.to_s
      regex = /.*(\.jpg|\.jpeg|\.png|\.svg)/
      app_assets_paths = Rails.application.assets.paths.
        select {|path| path =~ /#{root}/}.
        map    {|path| Pathname.new(path).cleanpath }

      files_data = Find.find(*app_assets_paths).select {|path| path =~ regex }

      files_data = files_data.map do |path|
        filename = path.match(/(?:.+\/)([^#?]+)/)[1]
        extension = filename.match(/(\.[^\\]+)$/)[1]
        asset_path = path
        folder_path = path.gsub(root, "")

        app_assets_paths.each do |rails_path|
          asset_path.gsub!("#{rails_path}/", "")
        end

        {filename: filename, asset_path: asset_path, path: folder_path, extension: extension}
      end

      # binding.pry

      @folders = files_data.group_by {|file| file[:path].match(/(.*\/).*/)[1] }
    end

    protected
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
morion-0.0.4 app/controllers/morion/morion_controller.rb
morion-0.0.3 app/controllers/morion/morion_controller.rb
morion-0.0.1 app/controllers/morion/morion_controller.rb