Class: Jatai::Commands::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/jatai/commands/base.rb

Instance Method Summary collapse

Instance Method Details

#apiObject



11
12
13
# File 'lib/jatai/commands/base.rb', line 11

def api
  @api ||= Api::Client.new
end

#app_nameObject

Nome legível. Arquivo novo traz name:; no antigo, o próprio app: era o nome de exibição.



42
43
44
# File 'lib/jatai/commands/base.rb', line 42

def app_name
  project_config[:name] || project_config[:app]
end

#app_slugObject

SEMPRE slugifica o que veio do arquivo. Isso é o que dá retrocompatibilidade com os .jatai.yml gerados antes de app: passar a guardar o slug: lá dentro havia o nome de exibição cru ("Alves Barbearia"), que ia direto para a URL e estourava no URI antes mesmo de sair a requisição. Slugificar é idempotente, então arquivo novo — que já traz o slug — atravessa sem alteração.



31
32
33
34
35
36
37
38
# File 'lib/jatai/commands/base.rb', line 31

def app_slug
  raw = project_config[:app]
  slug = Slug.from(raw)
  return slug if slug

  abort pastel.red("`app` inválido no .jatai.yml (#{raw.inspect}). " \
                   "Use letras, números e hífen, ou rode `jatai init` novamente.")
end

#error(msg) ⇒ Object



55
56
57
# File 'lib/jatai/commands/base.rb', line 55

def error(msg)
  puts pastel.red(msg)
end

#info(msg) ⇒ Object



59
60
61
# File 'lib/jatai/commands/base.rb', line 59

def info(msg)
  puts pastel.cyan(msg)
end

#pastelObject



7
8
9
# File 'lib/jatai/commands/base.rb', line 7

def pastel
  @pastel ||= Pastel.new
end

#project_configObject



15
16
17
18
19
20
21
22
23
# File 'lib/jatai/commands/base.rb', line 15

def project_config
  @project_config ||= begin
    config_path = Config.project_file_path
    unless File.exist?(config_path)
      abort pastel.red("Arquivo .jatai.yml não encontrado. Execute `jatai init` primeiro.")
    end
    YAML.safe_load(File.read(config_path), symbolize_names: true)
  end
end

#require_auth!Object



46
47
48
49
# File 'lib/jatai/commands/base.rb', line 46

def require_auth!
  return if Config.token
  abort pastel.red("Não autenticado. Execute `jatai login` primeiro.")
end

#success(msg) ⇒ Object



51
52
53
# File 'lib/jatai/commands/base.rb', line 51

def success(msg)
  puts pastel.green(msg)
end