Sha256: aff3177dcbf1c08f6e9ce6f31bd161f9df6f71642334cc47b545dc185beeaf6f
Contents?: true
Size: 940 Bytes
Versions: 1
Compression:
Stored size: 940 Bytes
Contents
# frozen_string_literal: true module Basketball module Drafting class Roster < ValueObject extend Forwardable class WrongTeamEventError < StandardError; end attr_reader_value :team, :events def_delegators :team, :id def initialize(team:, events: []) super() raise ArgumentError, 'team is required' unless team other_teams_pick_event_ids = events.reject { |e| e.team == team }.map(&:id) if other_teams_pick_event_ids.any? raise WrongTeamEventError, "Event(s): #{other_teams_pick_event_ids.join(',')} has wrong team" end @team = team @events = events end def player_events events.select { |e| e.respond_to?(:player) } end def players player_events.map(&:player) end def to_s ([team.to_s] + players.map(&:to_s)).join("\n") end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
basketball-0.0.4 | lib/basketball/drafting/roster.rb |