Class: WebpackDriver::Compile

Inherits:
Process
  • Object
show all
Defined in:
lib/webpack_driver/compile.rb

Constant Summary

Constants inherited from Process

Process::READ_CHUNK_SIZE

Instance Attribute Summary

Attributes inherited from Process

#assets, #config, #error, #last_compilation_message, #last_status, #messages

Instance Method Summary collapse

Methods inherited from Process

#in_progress?, #start, #stop

Constructor Details

#initialize(config) ⇒ Compile

Returns a new instance of Compile.



7
8
9
10
11
# File 'lib/webpack_driver/compile.rb', line 7

def initialize(config)
    config.environment ||= { NODE_ENV: 'production' }
    super('webpack', config)
    read_manifest
end

Instance Method Details

#complete?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/webpack_driver/compile.rb', line 17

def complete?
    last_status == 'success'
end

#read_manifestObject



34
35
36
37
38
39
40
41
# File 'lib/webpack_driver/compile.rb', line 34

def read_manifest
    return unless config.manifest_file.exist?
    manifest = JSON.parse config.manifest_file.read
    manifest.each do |id, files|
        asset = Asset.new({ 'id' => id, 'files' => files })
        assets[asset.id] = asset
    end
end

#record_status(status) ⇒ Object



21
22
23
24
# File 'lib/webpack_driver/compile.rb', line 21

def record_status(status)
    super
    write_manifest if complete?
end

#valid?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/webpack_driver/compile.rb', line 13

def valid?
    !alive? && complete?
end

#write_manifestObject



26
27
28
29
30
31
32
# File 'lib/webpack_driver/compile.rb', line 26

def write_manifest
    manifest = {}
    assets.each do | id, asset |
        manifest[id] = asset.files
    end
    config.manifest_file.write JSON.generate manifest
end