Sha256: 29f06a32cc5d421bb7862ae8dbf1627691fb7c5d3f217b0c406d01ccf2657f79

Contents?: true

Size: 846 Bytes

Versions: 1

Compression:

Stored size: 846 Bytes

Contents

class Team
  attr_accessor :name, :number, :players

  TEAMS = { "blue" => 1, "red" => 2, "yell" => 3, "gren" => 4, "spec" => 5 }.freeze

  def initialize(name)
    @name = build_name(name)
    @number = TEAMS[name] || 5
    @players = []
  end

  def enlist(player)
    @players << player
  end

  def to_embed_field
    Discordrb::Webhooks::EmbedField.new(inline: true, name: field_name, value: player_list)
  end

  private

    def field_name
      name = @name.capitalize
      return "#{name}" unless playing?
      "#{name} | #{score}"
    end

    def playing?
      (1..4).include?(@number)
    end

    def player_list
      players.map(&:to_row).join("\n")
    end

    def score
      return nil if @name == "Spec"
      @players.first.score
    end

    def build_name(name)
      return name if TEAMS[name]
      "spec"
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
qwtf_discord_bot-1.0.5 lib/team.rb