gameday 0.0.4 → 0.0.7
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.
- data/lib/gameday/box_score.rb +11 -0
- data/lib/gameday/game.rb +20 -9
- data/lib/gameday/master_scoreboard.rb +9 -0
- data/lib/gameday/version.rb +1 -1
- data/lib/url_helper.rb +13 -0
- data/spec/gameday/master_scoreboard_spec.rb +6 -3
- metadata +12 -11
data/lib/gameday/box_score.rb
CHANGED
@@ -1,8 +1,19 @@
|
|
1
1
|
require 'delegate'
|
2
|
+
require 'url_helper'
|
2
3
|
|
3
4
|
module Gameday
|
4
5
|
class BoxScore < SimpleDelegator
|
5
6
|
|
7
|
+
def self.from_params(year, month, day, away_code, home_code)
|
8
|
+
base = Gameday::BASE_URL
|
9
|
+
path = "/components/game/mlb/year_#{year}/month_#{month}/day_#{day}/gid_#{year}_#{month}_#{day}_#{away_code}mlb_#{home_code}mlb_1/boxscore.json"
|
10
|
+
doc = UrlHelper.get_json_doc(Gameday::BASE_URL, path)
|
11
|
+
|
12
|
+
return nil unless doc["data"]
|
13
|
+
|
14
|
+
Gameday::BoxScore.new(doc["data"]["boxscore"])
|
15
|
+
end
|
16
|
+
|
6
17
|
def __getobj__
|
7
18
|
@response_obj
|
8
19
|
end
|
data/lib/gameday/game.rb
CHANGED
@@ -12,6 +12,26 @@ module Gameday
|
|
12
12
|
@scoreboard = scoreboard
|
13
13
|
end
|
14
14
|
|
15
|
+
def get_boxscore
|
16
|
+
Gameday::BoxScore.from_params(year,month,day,away_code,home_code)
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_previous_day_boxscore
|
20
|
+
previous = Gameday::Game.get_previous_day(year,month,day)
|
21
|
+
|
22
|
+
Gameday::BoxScore.from_params(previous[:year],previous[:month],previous[:day],away_code,home_code)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.get_previous_day(year,month,day)
|
26
|
+
now = Date.new(year.to_i, month.to_i, day.to_i)
|
27
|
+
day_before = now - 1
|
28
|
+
{
|
29
|
+
year: "%04d" % day_before.year.to_s,
|
30
|
+
month: "%02d" % day_before.month.to_s,
|
31
|
+
day: "%02d" % day_before.day.to_s
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
15
35
|
def away_code
|
16
36
|
self["away_code"]
|
17
37
|
end
|
@@ -38,15 +58,6 @@ module Gameday
|
|
38
58
|
scoreboard.day
|
39
59
|
end
|
40
60
|
|
41
|
-
def boxscore_base_url
|
42
|
-
Gameday::BASE_URL
|
43
|
-
end
|
44
|
-
|
45
|
-
def boxscore_path
|
46
|
-
"/components/game/mlb/year_#{year}/month_#{month}/day_#{day}/gid_#{year}_#{month}_#{day}_#{away_code}mlb_#{home_code}mlb_1/boxscore.json"
|
47
|
-
end
|
48
|
-
|
49
|
-
|
50
61
|
end
|
51
62
|
|
52
63
|
end
|
@@ -1,5 +1,14 @@
|
|
1
|
+
require 'url_helper'
|
2
|
+
|
1
3
|
module Gameday
|
2
4
|
class MasterScoreboard < SimpleDelegator
|
5
|
+
|
6
|
+
def self.from_date(year,month,day)
|
7
|
+
url = "/components/game/mlb/year_#{year}/month_#{month}/day_#{day}/master_scoreboard.json"
|
8
|
+
doc = UrlHelper.get_json_doc(Gameday::BASE_URL, url)
|
9
|
+
Gameday::MasterScoreboard.new(doc["data"]["games"])
|
10
|
+
end
|
11
|
+
|
3
12
|
def __getobj__
|
4
13
|
@games
|
5
14
|
end
|
data/lib/gameday/version.rb
CHANGED
data/lib/url_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'faraday_middleware'
|
2
|
+
|
3
|
+
class UrlHelper
|
4
|
+
def self.get_json_doc(base_url, path)
|
5
|
+
connection = Faraday.new base_url do |conn|
|
6
|
+
conn.request :json
|
7
|
+
conn.response :json, :content_type => /\bjson$/
|
8
|
+
conn.adapter Faraday.default_adapter
|
9
|
+
end
|
10
|
+
|
11
|
+
connection.get(path).body
|
12
|
+
end
|
13
|
+
end
|
@@ -9,6 +9,10 @@ describe "master scoreboard" do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
describe "scoreboard" do
|
12
|
+
it "should have a from_date class method" do
|
13
|
+
Gameday::MasterScoreboard.should.respond_to?(:from_date)
|
14
|
+
end
|
15
|
+
|
12
16
|
scoreboard = Gameday::MasterScoreboard.new(body["data"]["games"])
|
13
17
|
|
14
18
|
it "should list the number of games" do
|
@@ -24,9 +28,8 @@ describe "master scoreboard" do
|
|
24
28
|
|
25
29
|
first_game = scoreboard.games.first
|
26
30
|
|
27
|
-
it "should
|
28
|
-
first_game.
|
29
|
-
first_game.boxscore_path.should == "/components/game/mlb/year_2012/month_07/day_01/gid_2012_07_01_phimlb_miamlb_1/boxscore.json"
|
31
|
+
it "should be able to get its own boxscore" do
|
32
|
+
first_game.should.respond_to?(:get_boxscore)
|
30
33
|
end
|
31
34
|
|
32
35
|
it "should tell who's playing the first game" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gameday
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-07-01 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
16
|
-
requirement: &
|
16
|
+
requirement: &70142999471680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70142999471680
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: faraday_middleware
|
27
|
-
requirement: &
|
27
|
+
requirement: &70142999471260 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70142999471260
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: nokogiri
|
38
|
-
requirement: &
|
38
|
+
requirement: &70142999461080 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70142999461080
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70142999460660 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70142999460660
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: webmock
|
60
|
-
requirement: &
|
60
|
+
requirement: &70142999460240 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70142999460240
|
69
69
|
description: Simplify the process of retrieving and parsing common MLB Gameday objects
|
70
70
|
email:
|
71
71
|
- davidwright at_symbol gmail
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- lib/gameday/master_scoreboard.rb
|
86
86
|
- lib/gameday/pitcher.rb
|
87
87
|
- lib/gameday/version.rb
|
88
|
+
- lib/url_helper.rb
|
88
89
|
- spec/gameday/boxscore_spec.rb
|
89
90
|
- spec/gameday/fixtures/boxscore.json
|
90
91
|
- spec/gameday/fixtures/master_scoreboard.json
|