Class: Legion::CLI::Team
- Inherits:
-
Thor
- Object
- Thor
- Legion::CLI::Team
- Defined in:
- lib/legion/cli/team_command.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_member(team_name, user) ⇒ Object
- #create(name) ⇒ Object
- #current ⇒ Object
- #list ⇒ Object
- #set(name) ⇒ Object
- #show(name) ⇒ Object
Class Method Details
.exit_on_failure? ⇒ 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 |
#current ⇒ Object
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 |
#list ⇒ Object
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 |