Sha256: d276de2e9a62b1419e163669691bb9729134e3c6e79ff3308591e8305021ed38

Contents?: true

Size: 855 Bytes

Versions: 2

Compression:

Stored size: 855 Bytes

Contents

# frozen_string_literal: true

module SleeperRb
  module Utilities
    ##
    # A string representing a roster position. See VALID_ROSTER_POSITIONS.
    # For every possible position in VALID_ROSTER_POSITIONS, there is a corresponding predicate method (e.g. `qb?`).
    class RosterPosition
      attr_reader :position

      def initialize(position)
        @position = position.upcase
      end

      VALID_ROSTER_POSITIONS = %w[
        qb rb wr te k dst flex bn ir super_flex ol dl de lb olb mlb fs ss db cb nb c rg lg lt rt ot g
      ].freeze

      VALID_ROSTER_POSITIONS.each do |position_key|
        define_method("#{position_key}?") { position == position_key.upcase }
      end

      def ==(other)
        return position == other.position.upcase if other.respond_to?(:position)

        position == other.upcase
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sleeper_rb-0.2.1 lib/sleeper_rb/utilities/roster_position.rb
sleeper_rb-0.2.0 lib/sleeper_rb/utilities/roster_position.rb