Sha256: a554b8f5879b430764d477d5a8aaa0bd46e88c569d6ff1a7da4e54ff338dae15

Contents?: true

Size: 1.26 KB

Versions: 6

Compression:

Stored size: 1.26 KB

Contents

# config/initializers/webpacker_gem_assets.rb

def default_assets_path
  'app/assets/javascripts'
end

def output_path
  Webpacker.config.send(:data)[:resolved_gems_output_path] || '/tmp/_add_gem_paths.js'
end

def resolve_gem_path(gem)
  if gem.present?
    gem_path = Gem.loaded_specs[gem]&.full_gem_path
    if gem_path.present?
      return "#{gem_path}/#{default_assets_path}"
    end
  end
  abort("Gem '#{gem}' not found, please check webpacker config (#{Webpacker.config.config_path})")
end

buffer = []
buffer << "
/*
 * THIS IS A GENERATED FILE.
 * DO NOT CHECK IT INTO SOURCE CONTROL
 */
function add_paths_to_environment(environment) {".strip

resolved_gems = Webpacker.config.send(:data)[:resolved_gems]
if resolved_gems.any?
  buffer << "\n  environment.resolvedModules.add(\n"
  buffer << resolved_gems.map do |gem|
    "    { key: 'gem-#{gem}', value: '#{resolve_gem_path(gem)}' }"
  end.join(",\n")
  buffer << "\n  )\n"
end

buffer << "}\nexports.add_paths_to_environment = add_paths_to_environment\n"

File.write(
  output_path,
  buffer.join
)

module WebpackerGemAssets
  def resolved_paths
    self.send(:data)[:resolved_gems].map do |gem|
      resolve_gem_path gem
    end.compact.concat(super)
  end
end

class Webpacker::Configuration
  prepend WebpackerGemAssets
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
spotlight_search-0.3.4 lib/generators/spotlight_search/templates/webpacker_gem_assets.rb
spotlight_search-0.3.3 lib/generators/spotlight_search/templates/webpacker_gem_assets.rb
spotlight_search-0.3.2 lib/generators/spotlight_search/templates/webpacker_gem_assets.rb
spotlight_search-0.3.1 lib/generators/spotlight_search/templates/webpacker_gem_assets.rb
spotlight_search-0.3.0 lib/generators/spotlight_search/templates/webpacker_gem_assets.rb
spotlight_search-0.2.2 lib/generators/spotlight_search/templates/webpacker_gem_assets.rb