Sha256: 97b761b73b0c8856086d7f0d85f5bb6b5717f513bbcc4ae8d11590d9c2be466e

Contents?: true

Size: 1.32 KB

Versions: 43

Compression:

Stored size: 1.32 KB

Contents

module Releaf
  class AssetsResolver
    NONCOMPILED_PATTERN = /(javascripts|stylesheets)\/(controllers\/(.*?))\..*/
    COMPILED_PATTERN = /controllers\/(.*?)\.(js|css)$/
    TYPE_EXTENSION_MAP = {
      "stylesheets" => "css",
      "javascripts" => "js",
    }

    def self.base_assets
      ["releaf/application"]
    end

    def self.controller_assets(controller, type)
      asset_path = "controllers/#{controller}.#{TYPE_EXTENSION_MAP[type.to_s]}"
      base_assets + [assets[asset_path]].compact
    end

    def self.noncompiled_assets
      Rails.application.assets.each_file.map do|file|
        match = file.to_s.match(NONCOMPILED_PATTERN)
        "#{match[2]}.#{TYPE_EXTENSION_MAP[match[1]]}" if match
      end.compact
    end

    def self.compiled_assets
      Rails.application.assets_manifest.files.map do|_, asset|
        match = asset["logical_path"].match(COMPILED_PATTERN)
        asset["logical_path"] if match
      end.compact.uniq
    end

    def self.compiled_assets?
      Rails.application.assets.nil?
    end

    def self.assets_hash(assets)
      assets.inject({}) do|hash, asset|
        hash.update(asset => asset)
      end
    end

    def self.assets
      if compiled_assets?
        @@compiled_assets ||= assets_hash(compiled_assets)
      else
        assets_hash(noncompiled_assets)
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
releaf-core-3.1.0 app/lib/releaf/assets_resolver.rb
releaf-core-3.0.3 app/lib/releaf/assets_resolver.rb
releaf-core-3.0.2 app/lib/releaf/assets_resolver.rb
releaf-core-3.0.1 app/lib/releaf/assets_resolver.rb
releaf-core-3.0.0 app/lib/releaf/assets_resolver.rb
releaf-core-2.2.1 app/lib/releaf/assets_resolver.rb
releaf-core-2.2.0 app/lib/releaf/assets_resolver.rb
releaf-core-2.1.2 app/lib/releaf/assets_resolver.rb
releaf-core-2.1.1 app/lib/releaf/assets_resolver.rb
releaf-core-2.1.0 app/lib/releaf/assets_resolver.rb
releaf-core-2.0.1 app/lib/releaf/assets_resolver.rb
releaf-core-2.0.0 app/lib/releaf/assets_resolver.rb
releaf-core-1.1.22 app/lib/releaf/assets_resolver.rb
releaf-core-1.1.21 app/lib/releaf/assets_resolver.rb
releaf-core-1.1.20 app/lib/releaf/assets_resolver.rb
releaf-core-1.1.19 app/lib/releaf/assets_resolver.rb
releaf-core-1.1.18 app/lib/releaf/assets_resolver.rb
releaf-core-1.1.17 app/lib/releaf/assets_resolver.rb
releaf-core-1.1.16 app/lib/releaf/assets_resolver.rb
releaf-core-1.1.15 app/lib/releaf/assets_resolver.rb