class QuakeliveApi::Base

Attributes

player_name[RW]

Public Class Methods

new(player_name) click to toggle source
# File lib/quakelive_api/base.rb, line 5
def initialize(player_name)
  @player_name = player_name

  set_parser Nokogiri::HTML(get)
  setup_variables!
end

Private Class Methods

class_name() click to toggle source
# File lib/quakelive_api/base.rb, line 37
def self.class_name
  name.split('::').last
end

Public Instance Methods

inspect() click to toggle source
# File lib/quakelive_api/base.rb, line 12
def inspect
  "#{self.class}:#{object_id}\n" + instance_variables.map do |v|
    next if v.to_s == "@parser"
    "#{v}=#{instance_variable_get(v).inspect}"
  end.compact.join("\n")
end

Private Instance Methods

get() click to toggle source
# File lib/quakelive_api/base.rb, line 21
def get
  Net::HTTP.get(URI.parse(URI::encode("#{QuakeliveApi.site}#{url}")))
end
parser() click to toggle source
# File lib/quakelive_api/base.rb, line 29
def parser
  @parser
end
set_parser(document) click to toggle source
# File lib/quakelive_api/base.rb, line 33
def set_parser(document)
  @parser ||= ::QuakeliveApi::Parser.const_get(self.class.class_name).new(document)
end
setup_variables() click to toggle source
# File lib/quakelive_api/base.rb, line 48
def setup_variables
  raise NotImplementedError
end
setup_variables!() click to toggle source
# File lib/quakelive_api/base.rb, line 41
def setup_variables!
  raise Error::PlayerNotFound if parser.invalid_player?
  raise Error::RequestError   if parser.request_error?

  setup_variables
end
url() click to toggle source
# File lib/quakelive_api/base.rb, line 25
def url
  raise NotImplementedError
end