Sha256: 38f337de9eb7c13d7d55c61a54c730de970c80b96171945f2b53ff7acc0934b4

Contents?: true

Size: 791 Bytes

Versions: 5

Compression:

Stored size: 791 Bytes

Contents

# frozen_string_literal: true

module Basketball
  module Common
    # Base class describing a player.
    # A consumer application should extend these specific to their specific sports traits.
    class Player < Entity
      attr_reader :overall, :position, :first_name, :last_name

      def initialize(id:, overall: 0, position: nil, first_name: '', last_name: '')
        super(id)

        raise ArgumentError, 'position is required' unless position

        @overall    = overall
        @position   = position
        @first_name = first_name
        @last_name  = last_name

        freeze
      end

      def full_name
        "#{first_name} #{last_name}".strip
      end

      def to_s
        "[#{super}] #{full_name} (#{position}) #{overall}".strip
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
basketball-0.0.27 lib/basketball/common/player.rb
basketball-0.0.26 lib/basketball/common/player.rb
basketball-0.0.25 lib/basketball/common/player.rb
basketball-0.0.24 lib/basketball/common/player.rb
basketball-0.0.23 lib/basketball/common/player.rb