lib/atp_scraper/activities/tournament.rb in atp_scraper-0.6.0 vs lib/atp_scraper/activities/tournament.rb in atp_scraper-0.6.1
- old
+ new
@@ -1,75 +1,71 @@
-module Activities
- # Activity Tournamnet Class
- class Tournament
- def initialize(doc)
- @tournament = doc
- end
+module AtpScraper
+ module Activities
+ # Activity Tournamnet Class
+ class Tournament
+ def initialize(doc)
+ @tournament = doc
+ end
- def info
- pickup_info(@tournament)
- end
+ # Return tournament data
+ def get
+ tournament_date = pickup_text(".tourney-dates")
+ surface = pickup_surface
+ caption = pickup_text(".activity-tournament-caption")
+ {
+ name: pickup_text(".tourney-title"),
+ category: pickup_category,
+ location: pickup_text(".tourney-location"),
+ date: divide_tournament_date(tournament_date),
+ year: tournament_date[0, 4],
+ surface: surface[:surface],
+ surface_inout: surface[:inout],
+ ranking: pickup_player_rank(caption)
+ }
+ end
- def records
- search_records_doc
- end
+ # Return records in this tournament
+ def records
+ @tournament.css(".mega-table tbody tr")
+ end
- private
+ private
- def pickup_info(tournament_doc)
- tournament_date = pickup_text(".tourney-dates")
- surface = pickup_surface
- caption = pickup_text(".activity-tournament-caption")
- {
- name: pickup_text(".tourney-title"),
- category: pickup_category,
- location: pickup_text(".tourney-location"),
- date: divide_tournament_date(tournament_date),
- year: tournament_date[0, 4],
- surface: surface[:surface],
- surface_inout: surface[:inout],
- ranking: pickup_player_rank(caption)
- }
- end
+ # Before: String "2011.01.03 - 2011.01.08"
+ # After: Hash { start: 2011.01.03, end: 2011.01.08 }
+ def divide_tournament_date(date)
+ date = date.split('-').map(&:strip)
+ { start: date[0], end: date[1] }
+ end
- # Before: String "2011.01.03 - 2011.01.08"
- # After: Hash { start: 2011.01.03, end: 2011.01.08 }
- def divide_tournament_date(date)
- date = date.split('-').map(&:strip)
- { start: date[0], end: date[1] }
- end
+ def pickup_text(selector)
+ @tournament.css(selector).first.content.strip
+ end
- def pickup_text(selector)
- @tournament.css(selector).first.content.strip
- end
+ def pickup_category
+ # ex) /~/media/images/tourtypes/categorystamps_itf_118x64.png?xxxxx
+ badge_url = @tournament.css(".tourney-badge-wrapper img").attr("src").value
+ badge_url.match(/categorystamps_(.*)_[0-9]*x[0-9]*.png/)[1]
+ end
- def pickup_category
- # ex) /~/media/images/tourtypes/categorystamps_itf_118x64.png?xxxxx
- badge_url = @tournament.css(".tourney-badge-wrapper img").attr("src").value
- badge_url.match(/categorystamps_(.*)_[0-9]*x[0-9]*.png/)[1]
- end
+ def pickup_surface
+ surface = @tournament
+ .css(".tourney-details")[1]
+ .css(".item-details")
+ .first.content.gsub(/\t|\s/, "")
+ divide_surface(surface)
+ end
- def pickup_surface
- surface = @tournament
- .css(".tourney-details")[1]
- .css(".item-details")
- .first.content.gsub(/\t|\s/, "")
- divide_surface(surface)
- end
-
- # "OutdoorHard" => { surface: "Hard", inout: "Outdoor" }
- def divide_surface(surface)
- inout = surface.match(/^(Outdoor|Indoor)/)
- return { surface: surface, inout: nil } if inout.nil?
- { surface: surface.gsub(/#{inout[0]}/, ''), inout: inout[0] }
- end
+ # "OutdoorHard" => { surface: "Hard", inout: "Outdoor" }
+ def divide_surface(surface)
+ inout = surface.match(/^(Outdoor|Indoor)/)
+ return { surface: surface, inout: nil } if inout.nil?
+ { surface: surface.gsub(/#{inout[0]}/, ''), inout: inout[0] }
+ end
- def pickup_player_rank(tournament_caption)
- rank = tournament_caption.match(/ATP Ranking:(.+), Prize/)
- rank[1].strip
- end
-
- def search_records_doc
- @tournament.css(".mega-table tbody tr")
+ def pickup_player_rank(tournament_caption)
+ rank = tournament_caption.match(/ATP Ranking:(.+), Prize/)
+ rank[1].strip
+ end
end
end
end