Class: Webpacker::Configuration

Inherits:
FileLoader show all
Defined in:
lib/webpacker/configuration.rb

Instance Attribute Summary

Attributes inherited from FileLoader

#data

Class Method Summary collapse

Methods inherited from FileLoader

load

Class Method Details

.dataObject



43
44
45
46
47
# File 'lib/webpacker/configuration.rb', line 43

def data
  load if Webpacker.env.development?
  raise Webpacker::FileLoader::FileLoaderError.new("Webpacker::Configuration.load must be called first") unless instance
  instance.data
end

.default_file_pathObject



31
32
33
# File 'lib/webpacker/configuration.rb', line 31

def default_file_path
  file_path(root: Pathname.new(__dir__).join("../install"))
end

.defaultsObject



49
50
51
# File 'lib/webpacker/configuration.rb', line 49

def defaults
  @defaults ||= HashWithIndifferentAccess.new(YAML.load(default_file_path.read)["default"])
end

.entry_pathObject



7
8
9
# File 'lib/webpacker/configuration.rb', line 7

def entry_path
  source_path.join(fetch(:source_entry_path))
end

.fetch(key) ⇒ Object



39
40
41
# File 'lib/webpacker/configuration.rb', line 39

def fetch(key)
  data.fetch(key, defaults[key])
end

.file_path(root: Rails.root) ⇒ Object



27
28
29
# File 'lib/webpacker/configuration.rb', line 27

def file_path(root: Rails.root)
  root.join("config/webpacker.yml")
end

.manifest_pathObject



15
16
17
# File 'lib/webpacker/configuration.rb', line 15

def manifest_path
  output_path.join("manifest.json")
end

.output_pathObject



11
12
13
# File 'lib/webpacker/configuration.rb', line 11

def output_path
  public_path.join(fetch(:public_output_path))
end

.public_pathObject



23
24
25
# File 'lib/webpacker/configuration.rb', line 23

def public_path
  Rails.root.join("public")
end

.sourceObject



35
36
37
# File 'lib/webpacker/configuration.rb', line 35

def source
  fetch(:source_path)
end

.source_pathObject



19
20
21
# File 'lib/webpacker/configuration.rb', line 19

def source_path
  Rails.root.join(source)
end