Sha256: 0cc2cf8b1ff68a176e7712a810ecf7ef134b0e8414aa18fe137369ad4c78e3e9

Contents?: true

Size: 810 Bytes

Versions: 4

Compression:

Stored size: 810 Bytes

Contents

# frozen_string_literal: true

module RailsDevtools
  class ImageSearchForm
    include ActiveModel::Model

    def initialize(search: "")
      @search = search
    end

    def results
      folders = RailsDevtools.asset_config.paths

      images_by_folder = Hash.new { |hash, key| hash[key] = [] }
      extensions = ImageAssets::ImageInfo::IMAGE_EXTENSIONS.map { |ext| ext.delete_prefix(".") }.join(",")

      folders.each do |dir|
        Dir.glob("#{dir}/**/*{#{@search.upcase}, #{@search.downcase}}*.{#{extensions}}").each do |path|
          image_info = ImageAssets::ImageInfo.new(path)
          next unless image_info.valid?

          dir = File.dirname(path).gsub(Rails.root.to_s, "")
          images_by_folder[dir] << image_info
        end
      end

      images_by_folder
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_devtools-0.1.3 app/forms/rails_devtools/image_search_form.rb
rails_devtools-0.1.2 app/forms/rails_devtools/image_search_form.rb
rails_devtools-0.1.1 app/forms/rails_devtools/image_search_form.rb
rails_devtools-0.1.0 app/forms/rails_devtools/image_search_form.rb