Class: Legion::CLI::Team

Inherits:
Thor
  • Object
show all
Defined in:
lib/legion/cli/team_command.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/legion/cli/team_command.rb', line 8

def self.exit_on_failure?
  true
end

Instance Method Details

#add_member(team_name, user) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/legion/cli/team_command.rb', line 79

def add_member(team_name, user)
  require 'legion/settings'
  require 'legion/team'
  Legion::Settings.load unless Legion::Settings.instance_variable_get(:@loader)
  teams = Legion::Settings.loader.settings[:teams] || {}
  sym = team_name.to_sym
  unless teams.key?(sym)
    say "Team '#{team_name}' not found.", :red
    return
  end
  teams[sym][:members] ||= []
  if teams[sym][:members].include?(user)
    say "#{user} is already a member of '#{team_name}'.", :yellow
    return
  end
  teams[sym][:members] << user
  Legion::Settings.loader.settings[:teams] = teams
  say "Added #{user} to team '#{team_name}'.", :green
end

#create(name) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/legion/cli/team_command.rb', line 63

def create(name)
  require 'legion/settings'
  require 'legion/team'
  Legion::Settings.load unless Legion::Settings.instance_variable_get(:@loader)
  teams = Legion::Settings.loader.settings[:teams] || {}
  if teams.key?(name.to_sym)
    say "Team '#{name}' already exists.", :yellow
    return
  end
  teams[name.to_sym] = { name: name, members: [] }
  Legion::Settings.loader.settings[:teams] = teams
  say "Team '#{name}' created.", :green
end

#currentObject



46
47
48
49
50
# File 'lib/legion/cli/team_command.rb', line 46

def current
  require 'legion/settings'
  require 'legion/team'
  say Legion::Team.current
end

#listObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/legion/cli/team_command.rb', line 13

def list
  require 'legion/settings'
  require 'legion/team'
  teams = Legion::Team.list
  if teams.empty?
    say 'No teams configured.', :yellow
    return
  end
  say 'Teams', :green
  say '-' * 20
  teams.each { |t| say "  #{t}" }
end

#set(name) ⇒ Object



53
54
55
56
57
58
59
60
# File 'lib/legion/cli/team_command.rb', line 53

def set(name)
  require 'legion/settings'
  require 'legion/team'
  Legion::Settings.load unless Legion::Settings.instance_variable_get(:@loader)
  Legion::Settings.loader.settings[:team] ||= {}
  Legion::Settings.loader.settings[:team][:name] = name
  say "Active team set to '#{name}'.", :green
end

#show(name) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/legion/cli/team_command.rb', line 27

def show(name)
  require 'legion/settings'
  require 'legion/team'
  team = Legion::Team.find(name)
  if team.nil?
    say "Team '#{name}' not found.", :red
    return
  end
  say "Team: #{name}", :green
  say '-' * 20
  members = team[:members] || []
  if members.empty?
    say '  No members.'
  else
    members.each { |m| say "  #{m}" }
  end
end