Class: Super::Assets

Inherits:
Object
  • Object
show all
Defined in:
lib/super/assets.rb

Overview

Utilities for determining whether to use Sprockets or Webpacker

Defined Under Namespace

Classes: Asset, Handler

Class Method Summary collapse

Class Method Details

.auto(path, **arguments) ⇒ Object



14
15
16
# File 'lib/super/assets.rb', line 14

def self.auto(path, **arguments)
  Asset.new(handler: Handler.auto, path: path, arguments: arguments)
end

.dist(gem_name, package_name) ⇒ Object



66
67
68
69
70
71
72
73
74
# File 'lib/super/assets.rb', line 66

def self.dist(gem_name, package_name)
  gem_name = gem_name.to_s

  @gem_paths ||= {}
  @gem_paths[gem_name] ||= Pathname.new(Gem.loaded_specs[gem_name].full_gem_path).expand_path
  gem_path = @gem_paths[gem_name]

  gem_path.join("frontend", package_name, "dist")
end

.sprockets(path, **arguments) ⇒ Object



10
11
12
# File 'lib/super/assets.rb', line 10

def self.sprockets(path, **arguments)
  Asset.new(handler: Handler.sprockets, path: path, arguments: arguments)
end

.use_sprockets(assets, grep: nil) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/super/assets.rb', line 31

def self.use_sprockets(assets, grep: nil)
  assets = [assets] if !assets.kind_of?(Array)

  assets.map do |asset|
    grep_matches = grep && asset === grep
    if grep_matches || !grep
      asset.instance_variable_set(:@asset_handler, Handler.sprockets)
    end

    asset
  end
end

.use_webpacker(assets, grep: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/super/assets.rb', line 18

def self.use_webpacker(assets, grep: nil)
  assets = [assets] if !assets.kind_of?(Array)

  assets.map do |asset|
    grep_matches = grep && asset === grep
    if grep_matches || !grep
      asset.instance_variable_set(:@handler, Handler.webpacker)
    end

    asset
  end
end

.webpacker(path, **arguments) ⇒ Object



6
7
8
# File 'lib/super/assets.rb', line 6

def self.webpacker(path, **arguments)
  Asset.new(handler: Handler.webpacker, path: path, arguments: arguments)
end