Module: Tarot::Config

Defined in:
lib/tarot.rb

Overview

Módulo para interagir com a configuração do tarot local do usuário.

Defined Under Namespace

Classes: ConfigError, Data

Class Method Summary collapse

Class Method Details

.build(&block) ⇒ void

This method returns an undefined value.

Usa um bloco, normalmente definido na tarot_spec.rb, para popular as configurações de usuário.

Examples:

Exemplo

Config.build do |config|
  config.session_expire_days = 13
  config.url = 'https://metabase.mycompany.com'
  config.database_aliases = {}
end

Yield Returns:

  • (Hash)

    Bloco que recebe um Tarot::Config::Data e modifica seus valores.

Raises:

  • (ConfigError)

    Se alguma configuração estiver faltando após a execução do bloco.



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/tarot.rb', line 38

def build(&block)
  @data = Data.new()
  block.call(@data)

  if @data.session_expire_days.nil?
    raise ConfigError, "Tarot config is missing 'session_expire_days'"
  end

  if @data.url.nil?
    raise ConfigError, "Tarot config is missing 'url'"
  end

  if @data.database_aliases.nil?
    raise ConfigError, "Tarot config is missing 'database_aliases'"
  end

  @data.session_expire_days.freeze
  @data.url = URI(@data.url).freeze
  @data.database_aliases.freeze

  @built = true
end

.dataConfig::Data

Retorna as configurações de usuário

Returns:

Raises:

  • (ConfigError)

    Se as configurações ainda não foram definidas via Config.build.



64
65
66
67
68
# File 'lib/tarot.rb', line 64

def data
  return @data unless @built.nil?

  raise ConfigError, 'Tarot is not properly configured, check tarot_spec.rb'
end