npb_result 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 533527c2c260ab7ceb2a1a60d1b0feccc277f76f6b89849bc2d688d28b8acd36
4
- data.tar.gz: a3853ef35d7cdddb7591446d12bea943c64484d0a98cb7f8c7ca7bf18bb8f69f
3
+ metadata.gz: 1530d536059ab2d6c788a1de303d83fbe74ec2d3979a004d8679fdd47ac5f18b
4
+ data.tar.gz: 403224fc1ba64e4b4614c6da6436c7c801d82662194ab53f28358474e798ca26
5
5
  SHA512:
6
- metadata.gz: 7d9660762db4101caf7c920c207c264be88b29c1dfd48793d860c30b39ea37d3472970a4b8062e5b01743c4d680858887d0ccbda3fb4f6d9b94eb328db318b2a
7
- data.tar.gz: 0cdefbf6750558b2dbcaf6de1179fb417240ca1e64dae0190f65966bf35b6efd7ced53a5155a925fc3af4912b6b7313143710f83b64e2b0fe3dc9a07cbc8a796
6
+ metadata.gz: 16113a89aa9607f8e73b6f147e0f2e725678f6dcbb3ca69757b44a044ea68aa64144828055365cea6ff7e629d15042c4347af83e97857f7d73af8da44c746679
7
+ data.tar.gz: 8153c08571c3f9065d3c0cd27d4d46819f93e5817e464995bea88e4d5d2079c650bbd1f366acdc55ddb115cf0c71a900f85007cec3ee34e89711ceb64651956f
data/Gemfile.lock CHANGED
@@ -31,11 +31,11 @@ PLATFORMS
31
31
  ruby
32
32
 
33
33
  DEPENDENCIES
34
- bundler (~> 1.17)
34
+ bundler (~> 2)
35
35
  irb (~> 1.0)
36
36
  npb_result!
37
37
  rake (~> 10.0)
38
38
  rspec (~> 3.0)
39
39
 
40
40
  BUNDLED WITH
41
- 1.17.3
41
+ 2.0.1
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # NpbResult
2
2
 
3
- Get NPB game result
3
+ get NPB game result
4
4
 
5
5
  ## Installation
6
6
 
@@ -33,17 +33,15 @@ $ npb_result
33
33
  or
34
34
 
35
35
  ```
36
- NpbResult.list
37
- #=> [
38
- {:home_team=>"中日", :home_score=>2, :away_team=>"DeNA", :away_score=>3, :status=>"結果"},
39
- {:home_team=>"巨人", :home_score=>6, :away_team=>"広島", :away_score=>3, :status=>"結果"},
40
- {:home_team=>"ヤクルト", :home_score=>2, :away_team=>"阪神", :away_score=>1, :status=>"結果"},
41
- {:home_team=>"西武", :home_score=>1, :away_team=>"ソフトバンク", :away_score=>3, :status=>"結果"},
42
- {:home_team=>"オリックス", :home_score=>1, :away_team=>"日本ハム", :away_score=>3, :status=>"結果"}, {:home_team=>"楽天", :home_score=>9, :away_team=>"ロッテ", :away_score=>4, :status=>"結果"}
43
- ]
44
-
45
- NpbResult.list(date: Date.today, team: "オリックス")
46
- #=> [{:home_team=>"オリックス", :home_score=>1, :away_team=>"日本ハム", :away_score=>3, :status=>"結果"}]
36
+ date = Date.new(2019, 4, 7)
37
+ NpbResult::Results.new(date: date).select_team("オリックス")
38
+ #=> #<NpbResult::Game:0x00007f9bf498bec0
39
+ @away_team="楽天",
40
+ @away_score=5,
41
+ @home_team="オリックス",
42
+ @home_score=5,
43
+ @status="結果",
44
+ @start_time=2019-04-07 13:00:00 +0900>
47
45
  ```
48
46
 
49
47
 
data/exe/npb_result CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  require 'npb_result'
4
4
 
5
- puts NpbResult.display
5
+ puts NpbResult::Results.new.display
data/lib/npb_result.rb CHANGED
@@ -1,49 +1,6 @@
1
1
  require "npb_result/version"
2
+ require "npb_result/results"
3
+ require "npb_result/game"
2
4
  require "date"
3
5
  require "open-uri"
4
6
  require "nokogiri"
5
-
6
- module NpbResult
7
- def self.display(date: Date.today, team: nil)
8
- results = list(date: date, team: team)
9
- if results.empty?
10
- "試合なし"
11
- else
12
- results.inject("") do |display, result|
13
- display << "【#{result[:status]}】#{result[:away_team]} (#{result[:away_score]})" +
14
- " - (#{result[:home_score]}) #{result[:home_team]}\n"
15
- end
16
- end
17
- end
18
-
19
- def self.list(date: Date.today, team: nil)
20
- d = date
21
- input_url = "https://baseball.yahoo.co.jp/npb/schedule/?date=#{d.strftime("%Y")}#{d.strftime("%m")}#{d.strftime("%d")}"
22
- doc = Nokogiri::HTML.parse(open(input_url).read)
23
-
24
- teams = doc.css(".yjMS.bb").map { |e| e.text }
25
- scores = doc.css(".score_r").map { |e| e.text.to_i }
26
- status = doc.css("td.yjMSt").map { |e| e.text }
27
-
28
- result_list = []
29
-
30
- status.size.times.with_index do |i|
31
- result_list << { home_team: teams[i * 2],
32
- home_score: scores[i * 2],
33
- away_team: teams[i * 2 + 1],
34
- away_score: scores[i * 2 + 1],
35
- status: status[i] }
36
- end
37
- select_team(result_list, team)
38
- end
39
-
40
- private
41
-
42
- def self.select_team(all_result, team)
43
- if team
44
- team_result = all_result.select { |game| game[:home_team] == team || game[:away_team] == team }
45
- else
46
- all_result
47
- end
48
- end
49
- end
@@ -0,0 +1,18 @@
1
+ module NpbResult
2
+ class Game
3
+ attr_reader :away_team, :away_score, :home_team, :home_score, :status, :start_time
4
+
5
+ def initialize(away_team, away_score, home_team, home_score, status, start_time)
6
+ @away_team = away_team
7
+ @away_score = away_score
8
+ @home_team = home_team
9
+ @home_score = home_score
10
+ @status = status
11
+ @start_time = start_time
12
+ end
13
+
14
+ def display
15
+ "【#{status}】#{away_team} (#{away_score}) - (#{home_score}) #{home_team}"
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,90 @@
1
+ module NpbResult
2
+ class Results
3
+ attr_reader :size
4
+ include Enumerable
5
+
6
+ def initialize(date: Date.today)
7
+ @date = date
8
+
9
+ doc = read_url(date)
10
+ away_team = away_team(doc)
11
+ away_score = away_score(doc)
12
+ home_team = home_team(doc)
13
+ home_score = home_score(doc)
14
+ status = status(doc)
15
+ start_time = start_time(doc)
16
+
17
+ @size = status.size
18
+ @results = []
19
+
20
+ @size.times do |i|
21
+ @results << Game.new(
22
+ away_team[i], away_score[i],
23
+ home_team[i], home_score[i],
24
+ status[i], start_time[i]
25
+ )
26
+ end
27
+ end
28
+
29
+ def select_team(team)
30
+ selected_team = @results.select { |game| game.home_team == team || game.away_team == team }
31
+ selected_team ? selected_team[0] : nil
32
+ end
33
+
34
+ def display
35
+ if @results.empty?
36
+ "試合なし"
37
+ else
38
+ inject("") do |display, result|
39
+ display << "【#{result.status}】#{result.away_team} (#{result.away_score})" \
40
+ " - (#{result.home_score}) #{result.home_team}\n"
41
+ end
42
+ end
43
+ end
44
+
45
+ def each
46
+ @results.each { |result| yield(result) }
47
+ end
48
+
49
+ def [](idx)
50
+ @results[idx]
51
+ end
52
+
53
+ private
54
+
55
+ def read_url(date)
56
+ d = date
57
+ input_url = "https://baseball.yahoo.co.jp/npb/schedule/?date=" \
58
+ "#{d.strftime("%Y")}#{d.strftime("%m")}#{d.strftime("%d")}"
59
+ Nokogiri::HTML.parse(open(input_url).read)
60
+ end
61
+
62
+ def away_team(doc)
63
+ doc.css(".yjMS.bb").map(&:text).select.with_index { |_, i| i.even? }
64
+ end
65
+
66
+ def home_team(doc)
67
+ doc.css(".yjMS.bb").map(&:text).select.with_index { |_, i| i.odd? }
68
+ end
69
+
70
+ def away_score(doc)
71
+ doc.css(".score_r").map(&:text).map(&:to_i).select.with_index { |_, i| i.even? }
72
+ end
73
+
74
+ def home_score(doc)
75
+ doc.css(".score_r").map(&:text).map(&:to_i).select.with_index { |_, i| i.odd? }
76
+ end
77
+
78
+ def status(doc)
79
+ doc.css("td.yjMSt").map(&:text)
80
+ end
81
+
82
+ def start_time(doc)
83
+ times = doc.css("td.yjSt.bl em").map(&:text).map { |e| e.split(":") }
84
+ d = @date
85
+ times.map do |time|
86
+ Time.new(d.strftime("%Y"), d.strftime("%m"), d.strftime("%d"), time[0], time[1])
87
+ end
88
+ end
89
+ end
90
+ end
@@ -1,3 +1,3 @@
1
1
  module NpbResult
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/npb_result.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.17"
26
+ spec.add_development_dependency "bundler", "~> 2"
27
27
  spec.add_development_dependency "rake", "~> 10.0"
28
28
  spec.add_development_dependency "rspec", "~> 3.0"
29
29
  spec.add_development_dependency "irb", "~> 1.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: npb_result
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - kasumi8pon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-01 00:00:00.000000000 Z
11
+ date: 2019-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '2'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -101,6 +101,8 @@ files:
101
101
  - bin/setup
102
102
  - exe/npb_result
103
103
  - lib/npb_result.rb
104
+ - lib/npb_result/game.rb
105
+ - lib/npb_result/results.rb
104
106
  - lib/npb_result/version.rb
105
107
  - npb_result.gemspec
106
108
  homepage: https://github.com/kasumi8pon