Class: SewingKit::Webpack::Manifest::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/sewing_kit/webpack/manifest/base.rb

Direct Known Subclasses

Development, Production

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize ⇒ Base

Returns a new instance of Base.



8
9
10
# File 'lib/sewing_kit/webpack/manifest/base.rb', line 8

def initialize
  @metadata = nil
end

Class Method Details

.load_metadata_from_node ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/sewing_kit/webpack/manifest/base.rb', line 30

def self.
  begin
    stdout, stderr, status = Open3.capture3('node_modules/.bin/sewing-kit', 'manifest', "--mode=#{mode}")
  rescue => e
    raise NodeSewingKitNotRunnable.new(mode, e)
  end

  raise NodeSewingKitManifestMissing.new(mode, stderr) unless status.success?

  begin
    JSON.parse(stdout)
  rescue => e
    raise ManifestParseError, e
  end
end

.mode ⇒ Object



46
47
48
# File 'lib/sewing_kit/webpack/manifest/base.rb', line 46

def self.mode
  ENV['NODE_ENV'] || Rails.env.to_s || 'production'
end

Instance Method Details

#asset_dependencies(entrypoint_name) ⇒ Object

:nodoc:



13
14
15
16
17
18
19
20
# File 'lib/sewing_kit/webpack/manifest/base.rb', line 13

def asset_dependencies(entrypoint_name)
   = 
  if .key?('development')
    ['development']['hangTight']
  else
    ['entrypoints'][entrypoint_name]
  end
end

#clear_cache! ⇒ Object



22
23
24
# File 'lib/sewing_kit/webpack/manifest/base.rb', line 22

def clear_cache!
  @metadata = nil
end

#manifest ⇒ Object



26
27
28
# File 'lib/sewing_kit/webpack/manifest/base.rb', line 26

def manifest
  ['assets']
end