Module: Space::Core::CLI::Helpers

Included in:
BaseCommand
Defined in:
lib/space_core/cli/helpers.rb

Instance Method Summary collapse

Instance Method Details

#display_date(space) ⇒ Object



33
34
35
36
37
38
# File 'lib/space_core/cli/helpers.rb', line 33

def display_date(space)
  id_date = space.id.match(/\A(\d{4})(\d{2})(\d{2})/)
  return "#{id_date[1]}-#{id_date[2]}-#{id_date[3]}" if id_date

  space.data["created_at"].to_s[0, 10]
end

#handle_errorsObject



40
41
42
43
44
45
46
47
48
49
# File 'lib/space_core/cli/helpers.rb', line 40

def handle_errors
  yield
rescue Space::Core::Error => e
  if terminal
    terminal.error(e.message)
  else
    err.puts e.message
  end
  CLI.record_outcome(Outcome.new(exit_code: 1, message: e.message))
end

#project_configObject



8
9
10
# File 'lib/space_core/cli/helpers.rb', line 8

def project_config
  @project_config ||= Space::Core::Config.load
end

#render(result) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/space_core/cli/helpers.rb', line 51

def render(result)
  case result
  when Dry::Monads::Result::Success
    yield result.value! if block_given?
  when Dry::Monads::Result::Failure
    error = result.failure
    message = error.respond_to?(:message) ? error.message : error.to_s
    terminal ? terminal.error(message) : err.puts(message)
    CLI.record_outcome(Outcome.new(exit_code: 1, message: message))
  end
end

#setup_terminal(color: "auto", colors: nil) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/space_core/cli/helpers.rb', line 24

def setup_terminal(color: "auto", colors: nil)
  @terminal = Space::Core::Terminal.new(
    config: project_config,
    stdout: out,
    stderr: err,
    color_mode: colors || color || "auto"
  )
end

#stateObject



12
13
14
# File 'lib/space_core/cli/helpers.rb', line 12

def state
  @state ||= Space::Core::State.load
end

#storeObject



16
17
18
# File 'lib/space_core/cli/helpers.rb', line 16

def store
  @store ||= Space::Core::SpaceStore.new(config: project_config, state: state)
end

#terminalObject



20
21
22
# File 'lib/space_core/cli/helpers.rb', line 20

def terminal
  @terminal
end