Class: Spackler::Major

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

Instance Method Summary collapse

Instance Method Details

#fetch(url) ⇒ Object



383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
# File 'lib/spackler.rb', line 383

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


  player_data = []
  cells = []

  #made cut
  doc.css('table.leaderMain').each do |table|
    #if table.attributes['class'] == 'leaderMain'
      table.css('tr').each do |row|
    if row.css('td').length > 9 #exclude ads or 'missed cut' td colspan = 11, etc
          row.css('td').each do |cel|
            innertext = cel.inner_text.strip()
            cells << innertext.to_ascii_iconv
          end
        end
        player_data << cells
        cells = []
      end
    #end
  end

  player_data.reverse!
  player_data.pop
  player_data.pop
  player_data.reverse!
  #player_data.pop
  #player_data.pop
  #player_data

  player_data
end

#friendly_structure(player_data) ⇒ Object



417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
# File 'lib/spackler.rb', line 417

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[0] != "Pos")
    playa = OpenStruct.new
    # extract data from PGA cells:
    playa.pos = p[0]
  puts "pos: #{playa.pos}"
    playa.mo = p[1]
    puts "mo: #{playa.mo}"
    playa.name = p[2]
    puts "name: #{playa.name}"
    playa.to_par = p[3]
    puts "to_par: #{playa.to_par}"
    playa.thru = p[4]
    puts "thru: #{playa.thru}"
    playa.today = p[5]
    puts "today: #{playa.today}"
    playa.r1 = p[6] 
    puts "r1: #{playa.r1}"
    playa.r2 = p[7]
    puts "r2: #{playa.r2}"
    playa.r3 = p[8]
    puts "r3: #{playa.r3}"
    playa.r4 = p[9]
    puts "r4: #{playa.r4}"
    playa.total = p[10]
    puts "total: #{playa.total}"
    if playa.name != nil || playa.name != ""
      this_player = Player.new(playa.name)
      playa.fname = this_player.fname
      playa.lname = this_player.lname
      players << playa
    end
  end

  return players
end

#get_urls(year) ⇒ Object



348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
# File 'lib/spackler.rb', line 348

def get_urls(year)
  if year == 2008
    urls = %w( masters usopen british pgachampionship ).map { |t|
              "http://www.majorschampionships.com/#{t}/2008/scoring/index.html"
            }
  elsif year == 2009
    urls = %w( masters usopen british pgachampionship ).map { |t|
              #{}"http://www.majorschampionships.com/#{t}/2009/scoring/index.cfm"
              "http://www.pga.com/pgachampionship/2009/scoring/index.cfm"
            }
  elsif year == 2010
    urls = %w( masters usopen british pgachampionship ).map { |t|
              #"http://www.majorschampionships.com/#{t}/2009/scoring/index.cfm"
              #"http://www.majorschampionships.com/#{t}/2010/scoring/index.cfm"
              "http://www.pga.com/openchampionship/2010/scoring/index.cfm"
            }
  else
    urls = []
  end

  urls
end

#tourney_info(url, major_name = "The Masters") ⇒ Object



371
372
373
374
375
376
377
378
379
380
381
# File 'lib/spackler.rb', line 371

def tourney_info(url, major_name="The Masters")
    doc = Nokogiri::HTML(open(url))
    tourn = OpenStruct.new

    # this totally sux, just getting it ready for this week, have to refactor a bunch of this later
    tourn.name = major_name
    tourn.dates = "April 9 - 12, 2009"
    tourn.course = "Augusta National Golf Club, Augusta, GA"

    tourn
end