class Sorare::Rewards::GameWeek

GameWeek stores the reward data of a game week

Attributes

salt[R]

Public Class Methods

new(data: nil, hash: nil, salt: nil) click to toggle source
# File lib/sorare/rewards/game_week.rb, line 16
def initialize(data: nil, hash: nil, salt: nil)
  @uri = URI("#{Sorare::Rewards.configuration.gateway}#{hash}")
  @data = data
  @salt = salt
end

Public Instance Methods

card_rewards() click to toggle source
# File lib/sorare/rewards/game_week.rb, line 57
def card_rewards
  @card_rewards ||= Sorare::Rewards::Pick.call!(reward_allocations.to_h)
end
config() click to toggle source
# File lib/sorare/rewards/game_week.rb, line 32
def config
  @config ||= GameWeekConfig.new(@data['config'])
end
data() click to toggle source
# File lib/sorare/rewards/game_week.rb, line 28
def data
  @data ||= JSON.parse(::Net::HTTP.get(@uri))
end
each_league() { |league(league_name)| ... } click to toggle source
# File lib/sorare/rewards/game_week.rb, line 43
def each_league
  (leagues || {}).each_key do |league_name|
    return to_enum(:each_league) unless block_given?

    yield(league(league_name))
  end
end
league(name) click to toggle source
# File lib/sorare/rewards/game_week.rb, line 61
def league(name)
  raise 'Unknown league' unless (leagues || {})[name]

  League.new(
    game_week: self, name: name, config: leagues[name], supply: supply[leagues.dig(name, 'pool_supply')]
  )
end
player(slug) click to toggle source
# File lib/sorare/rewards/game_week.rb, line 69
def player(slug)
  Player.new(slug, self)
end
reward_allocations() click to toggle source
# File lib/sorare/rewards/game_week.rb, line 51
def reward_allocations
  raise 'Salt required' unless salt

  @reward_allocations ||= Sorare::Rewards::Build.call!(game_week: self, salt: salt)
end
supply_for(league, rarity: nil, player: nil) click to toggle source
# File lib/sorare/rewards/game_week.rb, line 36
def supply_for(league, rarity: nil, player: nil)
  return (supply.dig(league, rarity, player) || 0) if rarity && player
  return (supply.dig(league, rarity) || {}) if rarity

  supply[league] || {}
end