class RsHiscores::Player

Constants

LookupUrl
StatClass

Attributes

name[R]
raw_stats[R]
stats[R]

Public Class Methods

new(name, params = {}) click to toggle source
# File lib/rshiscores/player.rb, line 10
def initialize name, params = {}
  @name = name
  validate_name

  fetch_highscores if params[:force]
end

Public Instance Methods

fetch_highscores() click to toggle source
# File lib/rshiscores/player.rb, line 26
def fetch_highscores
  safe_name = @name.gsub " ", "%20"
  f = open(self.class::LookupUrl + safe_name, "User-Agent" => "Ruby/RsHiscoresGrabber")

  @raw_stats = f.readlines.map &:chomp # readlines preserves newlines??
  @stats = self.class::StatClass.new @raw_stats
end
validate_name() click to toggle source
# File lib/rshiscores/player.rb, line 17
def validate_name
  raise "invalid characters in name" if @name =~ /[^A-Za-z0-9_\- ]/

  raise "name too long" if @name.length > 12
  raise "name too short" if @name.length < 1

  raise "name starts/ends with a space character" if (name[0] + name[-1]) =~ /[_\- ]/
end