Class: Opdotenv::AnywayLoader::Loader

Inherits:
Anyway::Loaders::Base
  • Object
show all
Defined in:
lib/opdotenv/anyway_loader.rb

Instance Method Summary collapse

Instance Method Details

#call(name:, env_prefix:, config_path:, **opts) ⇒ Object

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/opdotenv/anyway_loader.rb', line 11

def call(name:, env_prefix:, config_path:, **opts)
  options = opts[:opdotenv] || {}
  return {} if options.empty?

  path = options[:path] || options["path"]
  raise ArgumentError, "opdotenv loader requires :path" unless path

  parsed = SourceParser.parse(path)
  overwrite = options.key?(:overwrite) ? options[:overwrite] : true

  # Use a separate env hash to avoid side effects on global ENV
  data = Opdotenv::Loader.load(
    path,
    field_name: parsed[:field_name],
    field_type: parsed[:field_type],
    env: {},
    overwrite: overwrite
  )

  strip_prefix_from_keys(data, env_prefix)
end