Module: Diffend::Config::Fetcher

Defined in:
lib/diffend/config/fetcher.rb

Overview

Class responsible for fetching the config from .diffend.yml

Constant Summary collapse

MISSING_KEY_ERRORS =

All the errors for missing keys in the configuration file

[
  Errors::ProjectIdMissingInConfigurationFile,
  Errors::ShareableIdMissingInConfigurationFile,
  Errors::ShareableKeyMissingInConfigurationFile,
  Errors::BuildPathMissingInConfigurationFile
].freeze

Class Method Summary collapse

Class Method Details

.call(build_path) ⇒ OpenStruct

Returns open struct with config details.

Examples:

details = Fetcher.new.call('./')
details.build_path #=> './'

Parameters:

  • build_path (String)

    path of the current build

Returns:

  • (OpenStruct)

    open struct with config details



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/diffend/config/fetcher.rb', line 26

def call(build_path)
  build(build_path)
rescue Errors::MissingConfigurationFile
  Bundler.ui.error(build_missing_error_message(build_path))

  raise Diffend::Errors::HandledException
rescue Errors::EmptyConfigurationFile
  Bundler.ui.error(build_empty_error_message(build_path))

  raise Diffend::Errors::HandledException
rescue Errors::MalformedConfigurationFile
  Bundler.ui.error(build_malformed_error_message(build_path))

  raise Diffend::Errors::HandledException
rescue *MISSING_KEY_ERRORS => e
  Bundler.ui.error(build_missing_key_error_message(e))

  raise Diffend::Errors::HandledException
end