class Simpacker::Context
Attributes
config[R]
manifest[R]
Public Class Methods
new(root_path: Rails.root, env: Rails.env)
click to toggle source
# File lib/simpacker/context.rb, line 9 def initialize(root_path: Rails.root, env: Rails.env) config = load_config_file(root_path, env) @config = Simpacker::Configuration.new(**config) @manifest = Simpacker::Manifest.new(@config) end
Private Instance Methods
load_config_file(root_path, env)
click to toggle source
# File lib/simpacker/context.rb, line 17 def load_config_file(root_path, env) config_path = root_path.join("config/simpacker.yml") yaml = YAML.load(config_path.read) config_env = yaml.fetch(env.to_s) { manifest_path: root_path.join(config_env.fetch('manifest_path')), cache_manifest: config_env.fetch('cache_manifest'), } rescue Errno::ENOENT raise Simpacker::Context::InvalidConfigurationError, "Simpacker configuration file not found #{config_path}" rescue KeyError => err raise Simpacker::Context::InvalidConfigurationError, "Missing field: `#{err.key}` in #{config_path}" rescue Psych::SyntaxError => err raise Simpacker::Context::InvalidConfigurationError, "YAML syntax error occurred while parsing #{config_path}. Error: #{err.message}" end