Class: Etcher::Loaders::JSON

Inherits:
Object
  • Object
show all
Defined in:
lib/etcher/loaders/json.rb

Overview

Loads a JSON configuration.

Instance Method Summary collapse

Constructor Details

#initialize(path, fallback: Core::EMPTY_HASH, logger: LOGGER) ⇒ JSON

Returns a new instance of JSON.



13
14
15
16
17
# File 'lib/etcher/loaders/json.rb', line 13

def initialize path, fallback: Core::EMPTY_HASH, logger: LOGGER
  @path = path
  @fallback = fallback
  @logger = logger
end

Instance Method Details

#callObject



19
20
21
22
23
24
25
# File 'lib/etcher/loaders/json.rb', line 19

def call
  Success ::JSON.load_file(path)
rescue TypeError, Errno::ENOENT
  debug_and_fallback "Invalid path: #{path_info}. Using fallback."
rescue ::JSON::ParserError => error
  debug_and_fallback "#{error.message}. Path: #{path_info}. Using fallback."
end