mlb 0.8.0 → 0.10.0

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/mlb/venue.rb ADDED
@@ -0,0 +1,16 @@
1
+ require "equalizer"
2
+ require "shale"
3
+
4
+ module MLB
5
+ class Venue < Shale::Mapper
6
+ include Equalizer.new(:id)
7
+
8
+ attribute :id, Shale::Type::Integer
9
+ attribute :name, Shale::Type::String
10
+ attribute :link, Shale::Type::String
11
+ attribute :active, Shale::Type::Boolean
12
+ attribute :season, Shale::Type::Integer
13
+
14
+ alias_method :active?, :active
15
+ end
16
+ end
data/lib/mlb/venues.rb ADDED
@@ -0,0 +1,30 @@
1
+ require "shale"
2
+ require "uri"
3
+ require_relative "sport"
4
+ require_relative "venue"
5
+
6
+ module MLB
7
+ class Venues < Shale::Mapper
8
+ attribute :copyright, Shale::Type::String
9
+ attribute :venues, Venue, collection: true
10
+
11
+ def self.all(season: Time.now.year, sport: Sport.new(id: 1))
12
+ sport_id = sport.respond_to?(:id) ? sport.id : sport
13
+ params = {sportId: sport_id, season:}
14
+ query_string = URI.encode_www_form(params)
15
+ response = CLIENT.get("venues?#{query_string}")
16
+ venues = from_json(response)
17
+ venues.venues
18
+ end
19
+
20
+ def self.find(venue, season: Time.now.year, sport: Sport.new(id: 1))
21
+ id = venue.respond_to?(:id) ? venue.id : venue
22
+ sport_id = sport.respond_to?(:id) ? sport.id : sport
23
+ params = {sportId: sport_id, season:}
24
+ query_string = URI.encode_www_form(params)
25
+ response = CLIENT.get("venues/#{id}?#{query_string}")
26
+ venues = from_json(response)
27
+ venues.venues.first
28
+ end
29
+ end
30
+ end
data/lib/mlb/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require "rubygems/version"
2
2
 
3
3
  module MLB
4
- VERSION = Gem::Version.create("0.8.0")
4
+ VERSION = Gem::Version.create("0.10.0")
5
5
  end
@@ -0,0 +1,11 @@
1
+ require "equalizer"
2
+ require "shale"
3
+
4
+ module MLB
5
+ class WindDirection < Shale::Mapper
6
+ include Equalizer.new(:code)
7
+
8
+ attribute :code, Shale::Type::String
9
+ attribute :description, Shale::Type::String
10
+ end
11
+ end
data/lib/mlb.rb CHANGED
@@ -1,3 +1,12 @@
1
1
  require_relative "mlb/client"
2
- require_relative "mlb/team"
3
- require_relative "mlb/transaction"
2
+ require_relative "mlb/awards"
3
+ require_relative "mlb/conferences"
4
+ require_relative "mlb/divisions"
5
+ require_relative "mlb/leagues"
6
+ require_relative "mlb/players"
7
+ require_relative "mlb/roster"
8
+ require_relative "mlb/seasons"
9
+ require_relative "mlb/sports"
10
+ require_relative "mlb/teams"
11
+ require_relative "mlb/transactions"
12
+ require_relative "mlb/venues"
metadata CHANGED
@@ -1,16 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mlb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Berlin
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-05-06 00:00:00.000000000 Z
12
- dependencies: []
13
- description:
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: equalizer
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 0.0.11
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.0.11
26
+ - !ruby/object:Gem::Dependency
27
+ name: shale
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.2'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.2'
14
40
  email: sferik@gmail.com
15
41
  executables: []
16
42
  extensions: []
@@ -22,8 +48,15 @@ files:
22
48
  - bin/console
23
49
  - bin/setup
24
50
  - lib/mlb.rb
51
+ - lib/mlb/award.rb
52
+ - lib/mlb/awards.rb
25
53
  - lib/mlb/client.rb
54
+ - lib/mlb/conference.rb
55
+ - lib/mlb/conferences.rb
26
56
  - lib/mlb/connection.rb
57
+ - lib/mlb/division.rb
58
+ - lib/mlb/divisions.rb
59
+ - lib/mlb/error_handler.rb
27
60
  - lib/mlb/errors/bad_gateway.rb
28
61
  - lib/mlb/errors/bad_request.rb
29
62
  - lib/mlb/errors/client_error.rb
@@ -44,26 +77,43 @@ files:
44
77
  - lib/mlb/errors/too_many_requests.rb
45
78
  - lib/mlb/errors/unauthorized.rb
46
79
  - lib/mlb/errors/unprocessable_entity.rb
80
+ - lib/mlb/handedness.rb
81
+ - lib/mlb/league.rb
82
+ - lib/mlb/leagues.rb
47
83
  - lib/mlb/player.rb
84
+ - lib/mlb/players.rb
85
+ - lib/mlb/position.rb
48
86
  - lib/mlb/redirect_handler.rb
49
87
  - lib/mlb/request_builder.rb
50
- - lib/mlb/response_parser.rb
88
+ - lib/mlb/roster.rb
89
+ - lib/mlb/roster_entry.rb
90
+ - lib/mlb/season.rb
91
+ - lib/mlb/season_date_info.rb
92
+ - lib/mlb/seasons.rb
93
+ - lib/mlb/sky.rb
94
+ - lib/mlb/sport.rb
95
+ - lib/mlb/sports.rb
96
+ - lib/mlb/status.rb
51
97
  - lib/mlb/team.rb
98
+ - lib/mlb/teams.rb
52
99
  - lib/mlb/transaction.rb
100
+ - lib/mlb/transactions.rb
101
+ - lib/mlb/venue.rb
102
+ - lib/mlb/venues.rb
53
103
  - lib/mlb/version.rb
54
- - sig/mlb.rbs
104
+ - lib/mlb/wind_direction.rb
55
105
  homepage: https://sferik.github.io/mlb-ruby
56
106
  licenses:
57
107
  - MIT
58
108
  metadata:
59
109
  allowed_push_host: https://rubygems.org
60
- rubygems_mfa_required: 'true'
61
- homepage_uri: https://sferik.github.io/mlb-ruby
62
- source_code_uri: https://github.com/sferik/mlb-ruby
63
- changelog_uri: https://github.com/sferik/mlb-ruby/blob/master/CHANGELOG.md
64
110
  bug_tracker_uri: https://github.com/sferik/mlb-ruby/issues
111
+ changelog_uri: https://github.com/sferik/mlb-ruby/blob/master/CHANGELOG.md
65
112
  documentation_uri: https://rubydoc.info/gems/mlb/
66
- post_install_message:
113
+ funding_uri: https://github.com/sponsors/sferik/
114
+ homepage_uri: https://sferik.github.io/mlb-ruby
115
+ rubygems_mfa_required: 'true'
116
+ source_code_uri: https://github.com/sferik/mlb-ruby
67
117
  rdoc_options: []
68
118
  require_paths:
69
119
  - lib
@@ -71,15 +121,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
121
  requirements:
72
122
  - - ">="
73
123
  - !ruby/object:Gem::Version
74
- version: 3.1.2
124
+ version: '3.2'
75
125
  required_rubygems_version: !ruby/object:Gem::Requirement
76
126
  requirements:
77
127
  - - ">="
78
128
  - !ruby/object:Gem::Version
79
129
  version: '0'
80
130
  requirements: []
81
- rubygems_version: 3.5.9
82
- signing_key:
131
+ rubygems_version: 3.6.8
83
132
  specification_version: 4
84
- summary: A Ruby interface to the MLB Data API.
133
+ summary: A Ruby interface to the MLB Stats API.
85
134
  test_files: []
data/sig/mlb.rbs DELETED
@@ -1,191 +0,0 @@
1
- module MLB
2
- CLIENT: Client
3
- VERSION: Gem::Version
4
-
5
- class Error < StandardError
6
- end
7
-
8
- class ClientError < HTTPError
9
- end
10
-
11
- class BadGateway < ClientError
12
- end
13
-
14
- class BadRequest < ClientError
15
- end
16
-
17
- class ConnectionException < ClientError
18
- end
19
-
20
- class HTTPError < Error
21
- attr_reader response : Net::HTTPResponse
22
- attr_reader code : String
23
-
24
- def initialize: (response: Net::HTTPResponse) -> void
25
- end
26
-
27
- class Forbidden < ClientError
28
- end
29
-
30
- class GatewayTimeout < ClientError
31
- end
32
-
33
- class Gone < ClientError
34
- end
35
-
36
- class InternalServerError < ServerError
37
- end
38
-
39
- class NetworkError < Error
40
- end
41
-
42
- class NotAcceptable < ClientError
43
- end
44
-
45
- class NotFound < ClientError
46
- end
47
-
48
- class PayloadTooLarge < ClientError
49
- end
50
-
51
- class ServerError < HTTPError
52
- end
53
-
54
- class ServiceUnavailable < ServerError
55
- end
56
-
57
- class TooManyRedirects < Error
58
- end
59
-
60
- class TooManyRequests < ClientError
61
- end
62
-
63
- class Unauthorized < ClientError
64
- end
65
-
66
- class UnprocessableEntity < ClientError
67
- end
68
-
69
- class Connection
70
- DEFAULT_HOST: String
71
- DEFAULT_PORT: Integer
72
- DEFAULT_OPEN_TIMEOUT: Integer
73
- DEFAULT_READ_TIMEOUT: Integer
74
- DEFAULT_WRITE_TIMEOUT: Integer
75
- DEFAULT_DEBUG_OUTPUT: IO
76
- NETWORK_ERRORS: Array[(singleton(Errno::ECONNREFUSED) | singleton(Errno::ECONNRESET) | singleton(Net::OpenTimeout) | singleton(Net::ReadTimeout) | singleton(OpenSSL::SSL::SSLError))]
77
-
78
- @proxy_url: URI::Generic | String
79
-
80
- extend Forwardable
81
-
82
- attr_accessor open_timeout : Float | Integer
83
- attr_accessor read_timeout : Float | Integer
84
- attr_accessor write_timeout : Float | Integer
85
- attr_accessor debug_output : IO
86
-
87
- attr_reader proxy_uri: URI::Generic?
88
- attr_reader proxy_host : String?
89
- attr_reader proxy_port : Integer?
90
- attr_reader proxy_user : String?
91
- attr_reader proxy_pass : String?
92
-
93
- def initialize: (?open_timeout: Float | Integer, ?read_timeout: Float | Integer, ?write_timeout: Float | Integer, ?proxy_url: URI::Generic? | String?, ?debug_output: IO) -> void
94
- def proxy_url=: (URI::Generic | String proxy_url) -> void
95
- def perform: (request: Net::HTTPRequest) -> Net::HTTPResponse
96
-
97
- private
98
- def build_http_client: (?String host, ?Integer port) -> Net::HTTP
99
- def configure_http_client: (Net::HTTP http_client) -> Net::HTTP
100
- end
101
-
102
- class RequestBuilder
103
- HTTP_METHODS: Hash[Symbol, (singleton(Net::HTTP::Get) | singleton(Net::HTTP::Post) | singleton(Net::HTTP::Put) | singleton(Net::HTTP::Delete))]
104
- DEFAULT_HEADERS: Hash[String, String]
105
-
106
- def initialize: (?content_type: String, ?user_agent: String) -> void
107
- def build: (http_method: Symbol, uri: URI::Generic, ?body: String?, ?headers: Hash[String, String]) -> (Net::HTTPRequest)
108
-
109
- private
110
- def create_request: (http_method: Symbol, uri: URI::Generic, body: String?) -> (Net::HTTPRequest)
111
- def add_headers: (request: Net::HTTPRequest, headers: Hash[String, String]) -> void
112
- def escape_query_params: (URI::Generic uri) -> URI::Generic
113
- end
114
-
115
- class RedirectHandler
116
- DEFAULT_MAX_REDIRECTS: Integer
117
-
118
- attr_reader connection: Connection
119
- attr_reader request_builder: RequestBuilder
120
- attr_reader max_redirects: Integer
121
- def initialize: (?connection: Connection, ?request_builder: RequestBuilder, ?max_redirects: Integer) -> void
122
- def handle: (response: Net::HTTPResponse, request: Net::HTTPRequest, base_url: String, ?redirect_count: Integer) -> Net::HTTPResponse
123
-
124
- private
125
- def build_new_uri: (Net::HTTPResponse response, String base_url) -> URI::Generic
126
- def build_request: (Net::HTTPRequest request, URI::Generic new_uri, Integer response_code) -> Net::HTTPRequest
127
- def send_new_request: (URI::Generic new_uri, Net::HTTPRequest new_request) -> Net::HTTPResponse
128
- end
129
-
130
- class ResponseParser
131
- ERROR_MAP: Hash[Integer, singleton(BadGateway) | singleton(BadRequest) | singleton(ConnectionException) | singleton(Forbidden) | singleton(GatewayTimeout) | singleton(Gone) | singleton(InternalServerError) | singleton(NotAcceptable) | singleton(NotFound) | singleton(PayloadTooLarge) | singleton(ServiceUnavailable) | singleton(TooManyRequests) | singleton(Unauthorized) | singleton(UnprocessableEntity)]
132
- JSON_CONTENT_TYPE_REGEXP: Regexp
133
-
134
- def parse: (response: Net::HTTPResponse, ?array_class: Class?, ?object_class: Class?) -> untyped
135
-
136
- private
137
- def error: (Net::HTTPResponse response) -> HTTPError
138
- def error_class: (Net::HTTPResponse response) -> (singleton(BadGateway) | singleton(BadRequest) | singleton(ConnectionException) | singleton(Forbidden) | singleton(GatewayTimeout) | singleton(Gone) | singleton(InternalServerError) | singleton(NotAcceptable) | singleton(NotFound) | singleton(PayloadTooLarge) | singleton(ServiceUnavailable) | singleton(TooManyRequests) | singleton(Unauthorized) | singleton(UnprocessableEntity))
139
- def json?: (Net::HTTPResponse response) -> bool
140
- end
141
-
142
- class Client
143
- DEFAULT_BASE_URL: String
144
- DEFAULT_ARRAY_CLASS: singleton(Array)
145
- DEFAULT_OBJECT_CLASS: singleton(Hash)
146
- extend Forwardable
147
- @connection: Connection
148
- @request_builder: RequestBuilder
149
- @redirect_handler: RedirectHandler
150
- @response_parser: ResponseParser
151
-
152
- attr_accessor base_url: String
153
- attr_accessor default_array_class: singleton(Array)
154
- attr_accessor default_object_class: singleton(Hash)
155
- def initialize: (?base_url: String, ?open_timeout: Integer, ?read_timeout: Integer, ?write_timeout: Integer, ?debug_output: untyped, ?proxy_url: nil, ?default_array_class: singleton(Array), ?default_object_class: singleton(Hash), ?max_redirects: Integer) -> void
156
- def get: (String endpoint, ?headers: Hash[String, String], ?array_class: Class, ?object_class: Class) -> untyped
157
- def post: (String endpoint, ?String? body, ?headers: Hash[String, String], ?array_class: Class, ?object_class: Class) -> untyped
158
- def put: (String endpoint, ?String? body, ?headers: Hash[String, String], ?array_class: Class, ?object_class: Class) -> untyped
159
- def delete: (String endpoint, ?headers: Hash[String, String], ?array_class: Class, ?object_class: Class) -> untyped
160
-
161
- private
162
- def initialize_default_classes: (singleton(Array) default_array_class, singleton(Hash) default_object_class) -> singleton(Hash)
163
- def execute_request: (:delete | :get | :post | :put http_method, String endpoint, ?body: String?, ?headers: Hash[String, String], ?array_class: Class, ?object_class: Class) -> nil
164
- end
165
-
166
- attr_accessor effective_date: String
167
- attr_accessor player_id: String
168
- attr_accessor team_id: String
169
-
170
- class Team < Struct[untyped]
171
- attr_accessor team_id: String
172
- def self.new: -> void
173
- def self.all: (?season: Integer, ?sort_order: String, ?all_star: false) -> Array[Team]
174
- def roster: -> Array[Player]
175
- end
176
-
177
- class Transaction < Struct[untyped]
178
- attr_accessor player_id: String
179
- attr_accessor team_id: String
180
- def self.new: -> void
181
- def self.all: (?season: Integer, ?sort_order: String, ?all_star: false) -> Array[Team]
182
- def team: -> Team
183
- def player: -> Player
184
- end
185
-
186
- class Player < Struct[untyped]
187
- attr_accessor player_id: String
188
- def self.new: -> void
189
- def team: -> Team
190
- end
191
- end