igrigorik/vimgolf

View on GitHub
app/services/show_profile.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
require_relative '../repositories/repository_challenge'
require 'forwardable'

# retieve specific data for show page
# avoid loading all 'entries' to limit memory
class ShowProfile
  extend Forwardable

  def initialize(player)
    @player = player
  end
  attr_reader :player

  def_delegators :player, :nickname
  def_delegators :player, :name
  def_delegators :player, :description
  def_delegators :player, :location
  def_delegators :player, :provider

  def contributed
    @contributed ||= RepositoryChallenge.created_by(player.id).to_a
  end

  def tried_challenges
    @tried_challenges ||= RepositoryChallenge.player_best_scores(player.id).to_a
  end

end