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.
@@ -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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Gameday
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -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 know the url to its boxscore" do
28
- first_game.boxscore_base_url.should == Gameday::BASE_URL
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
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: &70094949663580 !ruby/object:Gem::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: *70094949663580
24
+ version_requirements: *70142999471680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: faraday_middleware
27
- requirement: &70094949663080 !ruby/object:Gem::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: *70094949663080
35
+ version_requirements: *70142999471260
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: nokogiri
38
- requirement: &70094949662660 !ruby/object:Gem::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: *70094949662660
46
+ version_requirements: *70142999461080
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70094949662240 !ruby/object:Gem::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: *70094949662240
57
+ version_requirements: *70142999460660
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: webmock
60
- requirement: &70094949661760 !ruby/object:Gem::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: *70094949661760
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