class NpbResult::Results
Attributes
size[R]
Public Class Methods
new(date: Date.today)
click to toggle source
# File lib/npb_result/results.rb, line 6 def initialize(date: Date.today) @date = date doc = read_url(date) away_team = away_team(doc) away_score = away_score(doc) home_team = home_team(doc) home_score = home_score(doc) status = status(doc) start_time = start_time(doc) @size = status.size @results = [] @size.times do |i| @results << Game.new( away_team[i], away_score[i], home_team[i], home_score[i], status[i], start_time[i] ) end end
Public Instance Methods
[](idx)
click to toggle source
# File lib/npb_result/results.rb, line 49 def [](idx) @results[idx] end
display()
click to toggle source
# File lib/npb_result/results.rb, line 34 def display if @results.empty? "試合なし" else inject("") do |display, result| display << "【#{result.status}】#{result.away_team} (#{result.away_score})" \ " - (#{result.home_score}) #{result.home_team}\n" end end end
each() { |result| ... }
click to toggle source
# File lib/npb_result/results.rb, line 45 def each @results.each { |result| yield(result) } end
select_team(team)
click to toggle source
# File lib/npb_result/results.rb, line 29 def select_team(team) selected_team = @results.select { |game| game.home_team == team || game.away_team == team } selected_team ? selected_team[0] : nil end
Private Instance Methods
away_score(doc)
click to toggle source
# File lib/npb_result/results.rb, line 70 def away_score(doc) doc.css(".score_r").map(&:text).map(&:to_i).select.with_index { |_, i| i.even? } end
away_team(doc)
click to toggle source
# File lib/npb_result/results.rb, line 62 def away_team(doc) doc.css(".yjMS.bb").map(&:text).select.with_index { |_, i| i.even? } end
home_score(doc)
click to toggle source
# File lib/npb_result/results.rb, line 74 def home_score(doc) doc.css(".score_r").map(&:text).map(&:to_i).select.with_index { |_, i| i.odd? } end
home_team(doc)
click to toggle source
# File lib/npb_result/results.rb, line 66 def home_team(doc) doc.css(".yjMS.bb").map(&:text).select.with_index { |_, i| i.odd? } end
read_url(date)
click to toggle source
# File lib/npb_result/results.rb, line 55 def read_url(date) d = date input_url = "https://baseball.yahoo.co.jp/npb/schedule/?date=" \ "#{d.strftime("%Y")}#{d.strftime("%m")}#{d.strftime("%d")}" Nokogiri::HTML.parse(open(input_url).read) end
start_time(doc)
click to toggle source
# File lib/npb_result/results.rb, line 82 def start_time(doc) times = doc.css("td.yjSt.bl em").map(&:text).map { |e| e.split(":") } d = @date times.map do |time| Time.new(d.strftime("%Y"), d.strftime("%m"), d.strftime("%d"), time[0], time[1]) end end
status(doc)
click to toggle source
# File lib/npb_result/results.rb, line 78 def status(doc) doc.css("td.yjMSt").map(&:text) end