Class: LunchMoney::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/lunchmoney/configuration.rb

Overview

Holds global configuration options for this gem

Examples:

api_key

LunchMoney::Configuration.api_key
=> "your_api_key"

validate_object_attributes

LunchMoney::Configuration.validate_object_attributes
=> true

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializevoid



21
22
23
24
# File 'lib/lunchmoney/configuration.rb', line 21

def initialize
  @api_key = ENV.fetch("LUNCHMONEY_TOKEN", nil)
  @validate_object_attributes = T.let(true, T::Boolean)
end

Instance Attribute Details

#api_keyString?

Returns:

  • (String, nil)


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

def api_key
  @api_key
end

#validate_object_attributesBoolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/lunchmoney/configuration.rb', line 18

def validate_object_attributes
  @validate_object_attributes
end

Instance Method Details

#valid?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/lunchmoney/configuration.rb', line 42

def valid?
  validation_errors.empty?
end

#validation_errorsArray<String>

Returns:

  • (Array<String>)


27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/lunchmoney/configuration.rb', line 27

def validation_errors
  errors = []

  if api_key&.strip&.empty?
    errors << "API key cannot be empty"
  end

  if api_key && T.must(api_key).length < 10
    errors << "API key appears to be too short"
  end

  errors
end