Class: Spackler::Euro

Inherits:
Object
  • Object
show all
Defined in:
lib/spackler.rb

Overview

end class PGA

Instance Method Summary collapse

Instance Method Details

#fetch(url, incl_missed_cut = false) ⇒ Object



288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'lib/spackler.rb', line 288

def fetch(url, incl_missed_cut=false)
  doc = Nokogiri::HTML(open(url))

  player_data = []
  cells = []

  #made cut and missed cut
  doc.css('div#scoresBoard2 table')[0].css('tr').each do |row|
    row.css('td').each do |cel|
      cells << cel.inner_text.strip().to_ascii_iconv
    end
    player_data << cells
    cells = []
  end
  player_data.pop
  player_data.pop
  player_data.pop
  player_data.reverse!
  player_data.pop
  player_data.reverse!
  player_data.pop
  player_data.pop
  player_data
end

#friendly_structure(player_data) ⇒ Object



313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
# File 'lib/spackler.rb', line 313

def friendly_structure player_data
  # take player_data and turn it into array of Ostructs
  players = []
  player_data.each do |p|
    next unless (p.length > 0 && p[1] != "Pos")
    playa = OpenStruct.new
    # extract data from PGA cells:
    playa.start = p[0]
    playa.pos = p[1]
    playa.name = p[2]
    this_player = Player.new(playa.name)
    playa.fname = this_player.fname
    playa.lname = this_player.lname
    playa.thru = p[4]
    playa.to_par = p[5]
    playa.r1 = p[6] 
    playa.r2 = p[7]
    playa.r3 = p[8]
    playa.r4 = p[9]
    playa.total = (playa.r1.to_i + playa.r2.to_i + playa.r3.to_i + playa.r4.to_i).to_s

    players << playa
  end

  return players
end

#get_urls(year) ⇒ Object



246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
# File 'lib/spackler.rb', line 246

def get_urls(year)
  if year == 2008
    # Euro Tour links        
    # not working: 2008020 2008026 2008086' in name:
    urls = %w(
              2008091 2008093 2008094 2008096 2008098 2008002 2008004 2008006 2008008 2008014
              2008016 2008018 2008024 2008028 2008032 2008034 2008036 2008038 
              2008040 2008042 2008044 2008046 2008050 2008052 2008054 2008056 2008062 2008068 
              2008070 2008072 2008074 2008076 2008078 2008083 2008084 2008088
            ).map { |t|
              #get rid of ugly assed pageid brackets
              URI.escape("http://scores.europeantour.com/default.sps?pagegid={9FFD4839-08EC-4F90-85A2-10F94D42CDB2}&eventid=#{t}&ieventno=2008088&infosid=2")
            }
  elsif year == 2007
    urls = []
  else
    urls = []
  end

  urls

end

#tourney_info(url) ⇒ Object



269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
# File 'lib/spackler.rb', line 269

def tourney_info(url)
  # tournament name, dates, golf course, location
    # <div id = "tournHeaderDiv">Commercialbank Qatar Masters presented by Dolphin Energy</div>
    # <div id = "tournVenue">Doha G.C.</div>
    # <div id = "tournLocal">Doha, Qatar</div>
    # <div id = "tournHeaderDate">24 Jan 2008  - 27 Jan 2008 </div>

    doc = Nokogiri::HTML(open(url))

    tourn = OpenStruct.new

    tourn.name = doc.css('div#tournHeaderDiv').first.inner_text.strip().to_ascii_iconv  
    tourn.course = doc.css('div#tournVenue').first.inner_text.strip().to_ascii_iconv
    tourn.dates = doc.css('div#tournHeaderDate').first.inner_text.strip().to_ascii_iconv
    tourn.local = doc.css('div#tournLocal').first.inner_text.strip().to_ascii_iconv

    tourn
end