Project

spackler

0.0
No commit activity in last 3 years
No release in over 3 years
'The spackler gem enables you to very easily obtain data on all golf tournament scores throughout the web. See README for more details'
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.3
 Project Readme

Spackler

"In the immortal words of Jean Paul Sartre, 'Au revoir, gopher'"
-Carl Spackler, Caddyshack

DESCRIPTION

Spackler enables you to scrape golf tournament web pages for data. URL's are preconfigured (check the carl__spackler.rb file). Tournament data is obtained and row data for each player is also obtained (pos, money, name, score relative to par, thru, today, r1, r2, r3, r4, total). Also included are internals methods to split first name and last name, to factor out 3 part names (E.g. Davis Love III) so that they show up as

####ASK QUESTIONS AND YOU SHALL BE ANSWERED!
mailing-list: http://groups.google.com/group/spackler-talk

by: Mark Holton via RedGrind, LLC (holtonma@gmail.com)

INSTALLATION

The best way is with RubyGems:
$ [sudo] gem install spackler

IF YOU PLAN TO SUBMIT A PATCH

After your git clone, run bundle command to ensure you obtain the required dependencies $ bundle Fetching source index for http://rubygems.org/ Using nokogiri (1.4.4) Using spackler (0.9.2.5) from source at /Users/yourname/yourdir/spackler Using bundler (1.0.7)

USAGE

example using Spackler gem, create a file named whatever.rb: # whatever.rb require 'spackler'

major = Spackler::Major.new
url = major.get_urls(2010)[0] #2010 Masters

puts "grabbing URL data from... #{url}"
players = major.friendly_structure(major.fetch(url))

puts players

when you run that whatever.rb file
$ ruby whatever.rb you will see the output that looks like:
grabbing URL data from... http://www.pga.com/openchampionship/2010/scoring/index.cfm pos: 1 mo: - name: Louis Oosthuizen to_par: -16 thru: F today: -1 r1: 65 r2: 67 r3: 69 r4: 71 total: 272 pos: 2 mo: 2 name: Lee Westwood to_par: -9 thru: F today: -2 r1: 67 r2: 71 r3: 71 r4: 70 total: 279 pos: T3 mo: 9 ...
the 'players' variable in this example will hold data as follows for you to use as you wish: #<OpenStruct pos="1", mo="-", name="Louis Oosthuizen", to_par="-16", thru="F", today="-1", r1="65", r2="67", r3="69", r4="71", total="272", fname="Louis", lname="Oosthuizen"> #<OpenStruct pos="2", mo="2", name="Lee Westwood", to_par="-9", thru="F", today="-2", r1="67", r2="71", r3="71", r4="70", total="279", fname="Lee", lname="Westwood"> #<OpenStruct pos="T3", mo="9", name="Rory McIlroy", to_par="-8", thru="F", today="-4", r1="63", r2="80", r3="69", r4="68", total="280", fname="Rory", lname="McIlroy"> #<OpenStruct pos="T3", mo="1", name="Henrik Stenson", to_par="-8", thru="F", today="-1", r1="68", r2="74", r3="67", r4="71", total="280", fname="Henrik", lname="Stenson"> #<OpenStruct pos="T3", mo="1", name="Paul Casey", to_par="-8", thru="F", today="+3", r1="69", r2="69", r3="67", r4="75", total="280", fname="Paul", lname="Casey"> #<OpenStruct pos="6", mo="2", name="Retief Goosen", to_par="-7", thru="F", today="-2", r1="69", r2="70", r3="72", r4="70", total="281", fname="Retief", lname="Goosen">
... So for instance, after the above example, if you continued: players[0].name #=> "Louis Oosthuizen" players[0].lname #=> "Oosthuizen" players[0].total #=> "272"