sleeper_rb 0.2.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.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.rspec +3 -0
- data/.rubocop.yml +18 -0
- data/.travis.yml +8 -0
- data/CHANGELOG.md +9 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +91 -0
- data/LICENSE.txt +21 -0
- data/README.md +92 -0
- data/Rakefile +24 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/docs/SleeperRb/BadRequest.html +106 -0
- data/docs/SleeperRb/Client.html +354 -0
- data/docs/SleeperRb/NotFound.html +106 -0
- data/docs/SleeperRb/RateLimitExceeded.html +106 -0
- data/docs/SleeperRb/Resources/Avatar.html +231 -0
- data/docs/SleeperRb/Resources/Draft/Metadata.html +419 -0
- data/docs/SleeperRb/Resources/Draft/Pick/Metadata.html +346 -0
- data/docs/SleeperRb/Resources/Draft/Pick.html +430 -0
- data/docs/SleeperRb/Resources/Draft/PickArray.html +108 -0
- data/docs/SleeperRb/Resources/Draft/Settings.html +361 -0
- data/docs/SleeperRb/Resources/Draft.html +560 -0
- data/docs/SleeperRb/Resources/DraftArray.html +198 -0
- data/docs/SleeperRb/Resources/League/Matchup.html +349 -0
- data/docs/SleeperRb/Resources/League/MatchupArray.html +108 -0
- data/docs/SleeperRb/Resources/League/Roster/Settings.html +415 -0
- data/docs/SleeperRb/Resources/League/Roster.html +409 -0
- data/docs/SleeperRb/Resources/League/RosterArray.html +108 -0
- data/docs/SleeperRb/Resources/League/ScoringSettings.html +808 -0
- data/docs/SleeperRb/Resources/League/Settings.html +648 -0
- data/docs/SleeperRb/Resources/League/Transaction/Metadata.html +119 -0
- data/docs/SleeperRb/Resources/League/Transaction/Settings.html +140 -0
- data/docs/SleeperRb/Resources/League/Transaction/WaiverBudget.html +292 -0
- data/docs/SleeperRb/Resources/League/Transaction.html +679 -0
- data/docs/SleeperRb/Resources/League/TransactionArray.html +272 -0
- data/docs/SleeperRb/Resources/League.html +688 -0
- data/docs/SleeperRb/Resources/LeagueArray.html +272 -0
- data/docs/SleeperRb/Resources/NflState.html +252 -0
- data/docs/SleeperRb/Resources/Player.html +860 -0
- data/docs/SleeperRb/Resources/PlayerArray.html +108 -0
- data/docs/SleeperRb/Resources/TradedPick.html +345 -0
- data/docs/SleeperRb/Resources/TradedPickArray.html +108 -0
- data/docs/SleeperRb/Resources/User/Metadata.html +140 -0
- data/docs/SleeperRb/Resources/User.html +406 -0
- data/docs/SleeperRb/Resources/UserArray.html +108 -0
- data/docs/SleeperRb/Resources.html +99 -0
- data/docs/SleeperRb/ServerError.html +106 -0
- data/docs/SleeperRb/Utilities/ArrayProxy.html +184 -0
- data/docs/SleeperRb/Utilities/Cache/ClassMethods.html +326 -0
- data/docs/SleeperRb/Utilities/Cache.html +253 -0
- data/docs/SleeperRb/Utilities/Request.html +120 -0
- data/docs/SleeperRb/Utilities/RosterPosition.html +239 -0
- data/docs/SleeperRb/Utilities.html +99 -0
- data/docs/SleeperRb.html +113 -0
- data/docs/created.rid +38 -0
- data/docs/css/fonts.css +167 -0
- data/docs/css/rdoc.css +619 -0
- data/docs/fonts/Lato-Light.ttf +0 -0
- data/docs/fonts/Lato-LightItalic.ttf +0 -0
- data/docs/fonts/Lato-Regular.ttf +0 -0
- data/docs/fonts/Lato-RegularItalic.ttf +0 -0
- data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
- data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
- data/docs/images/add.png +0 -0
- data/docs/images/arrow_up.png +0 -0
- data/docs/images/brick.png +0 -0
- data/docs/images/brick_link.png +0 -0
- data/docs/images/bug.png +0 -0
- data/docs/images/bullet_black.png +0 -0
- data/docs/images/bullet_toggle_minus.png +0 -0
- data/docs/images/bullet_toggle_plus.png +0 -0
- data/docs/images/date.png +0 -0
- data/docs/images/delete.png +0 -0
- data/docs/images/find.png +0 -0
- data/docs/images/loadingAnimation.gif +0 -0
- data/docs/images/macFFBgHack.png +0 -0
- data/docs/images/package.png +0 -0
- data/docs/images/page_green.png +0 -0
- data/docs/images/page_white_text.png +0 -0
- data/docs/images/page_white_width.png +0 -0
- data/docs/images/plugin.png +0 -0
- data/docs/images/ruby.png +0 -0
- data/docs/images/tag_blue.png +0 -0
- data/docs/images/tag_green.png +0 -0
- data/docs/images/transparent.png +0 -0
- data/docs/images/wrench.png +0 -0
- data/docs/images/wrench_orange.png +0 -0
- data/docs/images/zoom.png +0 -0
- data/docs/index.html +171 -0
- data/docs/js/darkfish.js +84 -0
- data/docs/js/navigation.js +105 -0
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search.js +110 -0
- data/docs/js/search_index.js +1 -0
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js +229 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +770 -0
- data/lib/sleeper_rb/client.rb +80 -0
- data/lib/sleeper_rb/resources/avatar.rb +43 -0
- data/lib/sleeper_rb/resources/draft/metadata.rb +83 -0
- data/lib/sleeper_rb/resources/draft/pick/metadata.rb +64 -0
- data/lib/sleeper_rb/resources/draft/pick.rb +85 -0
- data/lib/sleeper_rb/resources/draft/pick_array.rb +11 -0
- data/lib/sleeper_rb/resources/draft/settings.rb +73 -0
- data/lib/sleeper_rb/resources/draft.rb +129 -0
- data/lib/sleeper_rb/resources/draft_array.rb +25 -0
- data/lib/sleeper_rb/resources/league/matchup.rb +66 -0
- data/lib/sleeper_rb/resources/league/matchup_array.rb +11 -0
- data/lib/sleeper_rb/resources/league/roster/settings.rb +76 -0
- data/lib/sleeper_rb/resources/league/roster.rb +73 -0
- data/lib/sleeper_rb/resources/league/roster_array.rb +11 -0
- data/lib/sleeper_rb/resources/league/scoring_settings.rb +172 -0
- data/lib/sleeper_rb/resources/league/settings.rb +148 -0
- data/lib/sleeper_rb/resources/league/transaction/metadata.rb +22 -0
- data/lib/sleeper_rb/resources/league/transaction/settings.rb +22 -0
- data/lib/sleeper_rb/resources/league/transaction/waiver_budget.rb +52 -0
- data/lib/sleeper_rb/resources/league/transaction.rb +153 -0
- data/lib/sleeper_rb/resources/league/transaction_array.rb +43 -0
- data/lib/sleeper_rb/resources/league.rb +197 -0
- data/lib/sleeper_rb/resources/league_array.rb +41 -0
- data/lib/sleeper_rb/resources/nfl_state.rb +51 -0
- data/lib/sleeper_rb/resources/player.rb +189 -0
- data/lib/sleeper_rb/resources/player_array.rb +16 -0
- data/lib/sleeper_rb/resources/traded_pick.rb +63 -0
- data/lib/sleeper_rb/resources/traded_pick_array.rb +9 -0
- data/lib/sleeper_rb/resources/user/metadata.rb +20 -0
- data/lib/sleeper_rb/resources/user.rb +104 -0
- data/lib/sleeper_rb/resources/user_array.rb +9 -0
- data/lib/sleeper_rb/utilities/array_proxy.rb +47 -0
- data/lib/sleeper_rb/utilities/cache.rb +132 -0
- data/lib/sleeper_rb/utilities/request.rb +42 -0
- data/lib/sleeper_rb/utilities/roster_position.rb +30 -0
- data/lib/sleeper_rb/version.rb +5 -0
- data/lib/sleeper_rb.rb +15 -0
- data/sleeper_rb.gemspec +35 -0
- metadata +185 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "utilities/array_proxy"
|
|
4
|
+
require_relative "utilities/cache"
|
|
5
|
+
require_relative "utilities/request"
|
|
6
|
+
require_relative "utilities/roster_position"
|
|
7
|
+
require_relative "resources/avatar"
|
|
8
|
+
require_relative "resources/draft"
|
|
9
|
+
require_relative "resources/draft_array"
|
|
10
|
+
require_relative "resources/league"
|
|
11
|
+
require_relative "resources/league_array"
|
|
12
|
+
require_relative "resources/nfl_state"
|
|
13
|
+
require_relative "resources/player"
|
|
14
|
+
require_relative "resources/player_array"
|
|
15
|
+
require_relative "resources/traded_pick"
|
|
16
|
+
require_relative "resources/traded_pick_array"
|
|
17
|
+
require_relative "resources/user"
|
|
18
|
+
require_relative "resources/user_array"
|
|
19
|
+
|
|
20
|
+
module SleeperRb
|
|
21
|
+
##
|
|
22
|
+
# A SleeperRb::Client instance is the interface for formulating all requests for Sleeper data.
|
|
23
|
+
class Client
|
|
24
|
+
##
|
|
25
|
+
# Returns the current NflState.
|
|
26
|
+
#
|
|
27
|
+
# @return {SleeperRb::Resources::NflState}[rdoc-ref:SleeperRb::Resources::NflState] The NflState instance
|
|
28
|
+
def nfl_state
|
|
29
|
+
Resources::NflState.instance
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# Returns a user found by either username or user_id. Usernames are subject to change and are thus unstable.
|
|
34
|
+
#
|
|
35
|
+
# @param username [String] The current username
|
|
36
|
+
#
|
|
37
|
+
# @param user_id [String] The numerical user_id
|
|
38
|
+
#
|
|
39
|
+
# @return {SleeperRb::Resources::User}[rdoc-ref:SleeperRb::Resources::User]
|
|
40
|
+
def user(username: nil, user_id: nil)
|
|
41
|
+
Resources::User.new(username: username, user_id: user_id)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
##
|
|
45
|
+
# Returns an avatar found by the alphanumeric ID.
|
|
46
|
+
#
|
|
47
|
+
# @param avatar_id [String] The ID for the avatar
|
|
48
|
+
#
|
|
49
|
+
# @return {SleeperRb::Resources::Avatar}[rdoc-ref:SleeperRb::Resources::Avatar]
|
|
50
|
+
def avatar(avatar_id)
|
|
51
|
+
Resources::Avatar.new(avatar_id: avatar_id)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
##
|
|
55
|
+
# Returns a League found by the alphanumeric ID.
|
|
56
|
+
#
|
|
57
|
+
# @param league_id [String] The ID for the League
|
|
58
|
+
#
|
|
59
|
+
# @return {SleeperRb::Resources::League}[rdoc-ref:SleeperRb::Resources::League]
|
|
60
|
+
def league(league_id)
|
|
61
|
+
Resources::League.new(league_id: league_id)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
##
|
|
65
|
+
# Returns all NFL players.
|
|
66
|
+
#
|
|
67
|
+
# @return [{SleeperRb::Resources::PlayerArray}[rdoc-ref:SleeperRb::Resources::PlayerArray]]
|
|
68
|
+
def players
|
|
69
|
+
Resources::PlayerArray.new(Resources::Player.all)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
##
|
|
73
|
+
# Returns a specific Draft.
|
|
74
|
+
#
|
|
75
|
+
# @return [{SleeperRb::Resources::Draft}[rdoc-ref:SleeperRb::Resources::Draft]]
|
|
76
|
+
def draft(draft_id)
|
|
77
|
+
Resources::Draft.new(draft_id: draft_id)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SleeperRb
|
|
4
|
+
module Resources
|
|
5
|
+
##
|
|
6
|
+
# The Avatar class allows access to full-size or thumbnail URLs for user avatars.
|
|
7
|
+
class Avatar
|
|
8
|
+
include SleeperRb::Utilities::Request
|
|
9
|
+
include SleeperRb::Utilities::Cache
|
|
10
|
+
|
|
11
|
+
##
|
|
12
|
+
# :attr_reader: avatar_id
|
|
13
|
+
|
|
14
|
+
##
|
|
15
|
+
# :method: full_size
|
|
16
|
+
# Returns the full size image for the Avatar
|
|
17
|
+
#
|
|
18
|
+
# @return [Tempfile]
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# :method: thumbnail
|
|
22
|
+
# Returns the full size image for the Avatar
|
|
23
|
+
#
|
|
24
|
+
# @return [Tempfile]
|
|
25
|
+
|
|
26
|
+
cached_attr :full_size, :thumbnail, :avatar_id
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def retrieve_values!
|
|
31
|
+
full_url = "#{CDN_BASE_URL}/avatars/#{avatar_id}"
|
|
32
|
+
full_file = download_file(full_url, "#{avatar_id}-full")
|
|
33
|
+
thumb_url = "#{CDN_BASE_URL}/avatars/thumbs/#{avatar_id}"
|
|
34
|
+
thumb_file = download_file(thumb_url, "#{avatar_id}-thumb")
|
|
35
|
+
{
|
|
36
|
+
full_size: full_file,
|
|
37
|
+
thumbnail: thumb_file,
|
|
38
|
+
avatar_id: avatar_id
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen-string-literal: true
|
|
2
|
+
|
|
3
|
+
module SleeperRb
|
|
4
|
+
module Resources
|
|
5
|
+
class Draft
|
|
6
|
+
##
|
|
7
|
+
# Metadata about a particular Draft.
|
|
8
|
+
class Metadata
|
|
9
|
+
include SleeperRb::Utilities::Cache
|
|
10
|
+
|
|
11
|
+
##
|
|
12
|
+
# :attr_reader: scoring_type
|
|
13
|
+
|
|
14
|
+
##
|
|
15
|
+
# :attr_reader: name
|
|
16
|
+
|
|
17
|
+
##
|
|
18
|
+
# :attr_reader: description
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# :attr_reader: offering_user_id
|
|
22
|
+
|
|
23
|
+
##
|
|
24
|
+
# :attr_reader: offering_slot
|
|
25
|
+
|
|
26
|
+
##
|
|
27
|
+
# :attr_reader: nominating_user_id
|
|
28
|
+
|
|
29
|
+
##
|
|
30
|
+
# :attr_reader: nominating_slot
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# :attr_reader: nominated_player_id
|
|
34
|
+
|
|
35
|
+
##
|
|
36
|
+
# :attr_reader: hovered_player_id
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
# :attr_reader: highest_offer
|
|
40
|
+
|
|
41
|
+
cached_attr :scoring_type, :name, :description, :offering_user_id, :offering_slot, :nominating_user_id,
|
|
42
|
+
:nominating_slot, :nominated_player_id, :hovered_player_id, :highest_offer
|
|
43
|
+
|
|
44
|
+
##
|
|
45
|
+
# :method: offering_user
|
|
46
|
+
# The user who has made the most recent offer.
|
|
47
|
+
#
|
|
48
|
+
# @return [{SleeperRb::Resources::User}[rdoc-ref:SleeperRb::Resources::User]]
|
|
49
|
+
cached_association :offering_user do
|
|
50
|
+
User.new(user_id: offering_user_id)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# :method: nominating_user
|
|
55
|
+
# The user who has made the most recent nomination.
|
|
56
|
+
#
|
|
57
|
+
# @return [{SleeperRb::Resources::User}[rdoc-ref:SleeperRb::Resources::User]]
|
|
58
|
+
cached_association :nominating_user do
|
|
59
|
+
User.new(user_id: nominating_user_id)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
# :method: nominated_player
|
|
64
|
+
# The player who is currently nominated.
|
|
65
|
+
#
|
|
66
|
+
# @return [{SleeperRb::Resources::Player}[rdoc-ref:SleeperRb::Resources::Player]]
|
|
67
|
+
cached_association :nominated_player do
|
|
68
|
+
Player.new(player_id: nominated_player_id)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
##
|
|
72
|
+
# :method: hovered_player
|
|
73
|
+
#
|
|
74
|
+
# @return [{SleeperRb::Resources::Player}[rdoc-ref:SleeperRb::Resources::Player]]
|
|
75
|
+
cached_association :hovered_player do
|
|
76
|
+
Player.new(player_id: hovered_player_id)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
skip_refresh :all
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# frozen-string-literal: true
|
|
2
|
+
|
|
3
|
+
module SleeperRb
|
|
4
|
+
module Resources
|
|
5
|
+
class Draft
|
|
6
|
+
class Pick
|
|
7
|
+
##
|
|
8
|
+
# Metadata associated with a specific draft pick.
|
|
9
|
+
class Metadata
|
|
10
|
+
include SleeperRb::Utilities::Cache
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
# :attr_reader: years_exp
|
|
14
|
+
|
|
15
|
+
##
|
|
16
|
+
# :attr_reader: team
|
|
17
|
+
|
|
18
|
+
##
|
|
19
|
+
# :attr_reader: status
|
|
20
|
+
|
|
21
|
+
##
|
|
22
|
+
# :attr_reader: sport
|
|
23
|
+
|
|
24
|
+
##
|
|
25
|
+
# :attr_reader: player_id
|
|
26
|
+
|
|
27
|
+
##
|
|
28
|
+
# :attr_reader: number
|
|
29
|
+
|
|
30
|
+
##
|
|
31
|
+
# :attr_reader: news_updated
|
|
32
|
+
|
|
33
|
+
##
|
|
34
|
+
# :attr_reader: last_name
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# :attr_reader: injury_status
|
|
38
|
+
|
|
39
|
+
##
|
|
40
|
+
# :attr_reader: first_name
|
|
41
|
+
|
|
42
|
+
##
|
|
43
|
+
# :method: position
|
|
44
|
+
#
|
|
45
|
+
# @return [{SleeperRb::Utilities::RosterPosition}[rdoc-ref:SleeperRb::Utilities::RosterPosition]]
|
|
46
|
+
|
|
47
|
+
cached_attr :years_exp, :team, :status, :sport, :player_id, :number, :last_name, :injury_status,
|
|
48
|
+
:first_name, position: ->(position) { SleeperRb::Utilities::RosterPosition.new(position) },
|
|
49
|
+
news_updated: :timestamp
|
|
50
|
+
|
|
51
|
+
skip_refresh :all
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# Returns the combined first and last name.
|
|
55
|
+
#
|
|
56
|
+
# @return [String]
|
|
57
|
+
def full_name
|
|
58
|
+
[first_name, last_name].join(" ")
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# frozen-string-literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "pick/metadata"
|
|
4
|
+
|
|
5
|
+
module SleeperRb
|
|
6
|
+
module Resources
|
|
7
|
+
class Draft
|
|
8
|
+
##
|
|
9
|
+
# A pick from a given draft, containing information about the user and selected player.
|
|
10
|
+
class Pick
|
|
11
|
+
include SleeperRb::Utilities::Cache
|
|
12
|
+
|
|
13
|
+
##
|
|
14
|
+
# :attr_reader: round
|
|
15
|
+
|
|
16
|
+
##
|
|
17
|
+
# :attr_reader: roster_id
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# :attr_reader: player_id
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# :attr_reader: picked_by
|
|
24
|
+
|
|
25
|
+
##
|
|
26
|
+
# :attr_reader: pick_no
|
|
27
|
+
|
|
28
|
+
##
|
|
29
|
+
# :attr_reader: is_keeper
|
|
30
|
+
|
|
31
|
+
##
|
|
32
|
+
# :attr_reader: draft_slot
|
|
33
|
+
|
|
34
|
+
##
|
|
35
|
+
# :attr_reader: draft_id
|
|
36
|
+
|
|
37
|
+
##
|
|
38
|
+
# :method: draft
|
|
39
|
+
# Returns the draft instance to which this pick belongs.
|
|
40
|
+
#
|
|
41
|
+
# @return [{SleeperRb::Resources::Draft}[rdoc-ref:SleeperRb::Resources::Draft]]
|
|
42
|
+
|
|
43
|
+
##
|
|
44
|
+
# :method: metadata
|
|
45
|
+
# Returns the metadata for this pick.
|
|
46
|
+
#
|
|
47
|
+
# @return [{SleeperRb::resources::Draft::Pick::Metadata}[rdoc-ref:SleeperRb::resources::Draft::Pick::Metadata]]
|
|
48
|
+
|
|
49
|
+
cached_attr :round, :roster_id, :player_id, :picked_by, :pick_no, :is_keeper, :draft_slot, :draft_id, :draft,
|
|
50
|
+
metadata: ->(hash) { Metadata.new(hash) }
|
|
51
|
+
|
|
52
|
+
delegate(*Metadata.cached_attrs.keys, to: :metadata)
|
|
53
|
+
|
|
54
|
+
skip_refresh :all
|
|
55
|
+
|
|
56
|
+
##
|
|
57
|
+
# :method: player
|
|
58
|
+
# Returns the player instance selected with this pick.
|
|
59
|
+
#
|
|
60
|
+
# @return [{SleeperRb::Resources::Player}[rdoc-ref:SleeperRb::Resources::Player]]
|
|
61
|
+
cached_association :player do
|
|
62
|
+
Player.new(player_id: player_id)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
##
|
|
66
|
+
# :method: roster
|
|
67
|
+
# Returns the roster instance to which this pick belongs.
|
|
68
|
+
#
|
|
69
|
+
# @return [{SleeperRb::Resources::League::Roster}[rdoc-ref:SleeperRb::Resources::League::Roster]]
|
|
70
|
+
cached_association :roster do
|
|
71
|
+
draft.league.rosters.detect { |roster| roster.roster_id == roster_id }
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
##
|
|
75
|
+
# :method: user
|
|
76
|
+
# Returns the user instance to whom this pick belongs.
|
|
77
|
+
#
|
|
78
|
+
# @return [{SleeperRb::Resources::User}[rdoc-ref:SleeperRb::Resources::User]]
|
|
79
|
+
cached_association :user do
|
|
80
|
+
draft.league.users.detect { |user| user.user_id == picked_by }
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen-string-literal: true
|
|
2
|
+
|
|
3
|
+
module SleeperRb
|
|
4
|
+
module Resources
|
|
5
|
+
class Draft
|
|
6
|
+
##
|
|
7
|
+
# Settings for a given Draft.
|
|
8
|
+
class Settings
|
|
9
|
+
include SleeperRb::Utilities::Cache
|
|
10
|
+
|
|
11
|
+
##
|
|
12
|
+
# :attr_reader: teams
|
|
13
|
+
|
|
14
|
+
##
|
|
15
|
+
# :attr_reader: slots_wr
|
|
16
|
+
|
|
17
|
+
##
|
|
18
|
+
# :attr_reader: slots_te
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# :attr_reader: slots_rb
|
|
22
|
+
|
|
23
|
+
##
|
|
24
|
+
# :attr_reader: slots_qb
|
|
25
|
+
|
|
26
|
+
##
|
|
27
|
+
# :attr_reader: slots_k
|
|
28
|
+
|
|
29
|
+
##
|
|
30
|
+
# :attr_reader: slots_flex
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# :attr_reader: slots_def
|
|
34
|
+
|
|
35
|
+
##
|
|
36
|
+
# :attr_reader: slots_dbn
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
# :attr_reader: rounds
|
|
40
|
+
|
|
41
|
+
##
|
|
42
|
+
# :attr_reader: pick_time
|
|
43
|
+
|
|
44
|
+
##
|
|
45
|
+
# :attr_reader: reversal_round
|
|
46
|
+
|
|
47
|
+
##
|
|
48
|
+
# :attr_reader: player_type
|
|
49
|
+
|
|
50
|
+
##
|
|
51
|
+
# :attr_reader: nomination_timer
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# :attr_reader: enforce_position_limits
|
|
55
|
+
|
|
56
|
+
##
|
|
57
|
+
# :attr_reader: cpu_autopick
|
|
58
|
+
|
|
59
|
+
##
|
|
60
|
+
# :attr_reader: budget
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
# :attr_reader: alpha_sort
|
|
64
|
+
|
|
65
|
+
cached_attr :teams, :slots_wr, :slots_te, :slots_rb, :slots_qb, :slots_k, :slots_flex, :slots_def,
|
|
66
|
+
:slots_bn, :rounds, :pick_timer, :reversal_round, :player_type, :nomination_timer,
|
|
67
|
+
:enforce_position_limits, :cpu_autopick, :budget, :alpha_sort
|
|
68
|
+
|
|
69
|
+
skip_refresh :all
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# frozen-string-literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "draft/metadata"
|
|
4
|
+
require_relative "draft/settings"
|
|
5
|
+
require_relative "draft/pick"
|
|
6
|
+
require_relative "draft/pick_array"
|
|
7
|
+
|
|
8
|
+
module SleeperRb
|
|
9
|
+
module Resources
|
|
10
|
+
##
|
|
11
|
+
# Represents a draft for a given user.
|
|
12
|
+
class Draft
|
|
13
|
+
include SleeperRb::Utilities::Cache
|
|
14
|
+
include SleeperRb::Utilities::Request
|
|
15
|
+
|
|
16
|
+
##
|
|
17
|
+
# :attr_reader: type
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# :attr_reader: status
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# :attr_reader: start_time
|
|
24
|
+
|
|
25
|
+
##
|
|
26
|
+
# :attr_reader: sport
|
|
27
|
+
|
|
28
|
+
##
|
|
29
|
+
# :attr_reader: season_type
|
|
30
|
+
|
|
31
|
+
##
|
|
32
|
+
# :attr_reader: season
|
|
33
|
+
|
|
34
|
+
##
|
|
35
|
+
# :attr_reader: league_id
|
|
36
|
+
|
|
37
|
+
##
|
|
38
|
+
# :attr_reader: league
|
|
39
|
+
|
|
40
|
+
##
|
|
41
|
+
# :attr_reader: last_picked
|
|
42
|
+
|
|
43
|
+
##
|
|
44
|
+
# :attr_reader: last_message_time
|
|
45
|
+
|
|
46
|
+
##
|
|
47
|
+
# :attr_reader: last_message_id
|
|
48
|
+
|
|
49
|
+
##
|
|
50
|
+
# :attr_reader: draft_order
|
|
51
|
+
|
|
52
|
+
##
|
|
53
|
+
# :attr_reader: draft_id
|
|
54
|
+
|
|
55
|
+
##
|
|
56
|
+
# :attr_reader: creators
|
|
57
|
+
|
|
58
|
+
##
|
|
59
|
+
# :attr_reader: created
|
|
60
|
+
|
|
61
|
+
##
|
|
62
|
+
# :method: settings
|
|
63
|
+
# Settings for the draft.
|
|
64
|
+
#
|
|
65
|
+
# @return [{SleeperRb::Resources::Draft::Settings}[rdoc-ref:SleeperRb::Resources::Draft::Settings]]
|
|
66
|
+
|
|
67
|
+
##
|
|
68
|
+
# :method: metadata
|
|
69
|
+
# Metadata for the draft.
|
|
70
|
+
#
|
|
71
|
+
# @return [{SleeperRb::Resources::Draft::Metadata}[rdoc-ref:SleeperRb::Resources::Draft::Metadata]]
|
|
72
|
+
|
|
73
|
+
cached_attr :type, :status, :start_time, :sport, :season_type, :season, :league_id, :last_picked, :league,
|
|
74
|
+
:last_message_time, :last_message_id, :draft_order, :draft_id, :creators, :created, :slot_to_roster_id,
|
|
75
|
+
settings: ->(hash) { Settings.new(hash) },
|
|
76
|
+
metadata: ->(hash) { Metadata.new(hash) }
|
|
77
|
+
|
|
78
|
+
delegate(*Settings.cached_attrs.keys, to: :settings)
|
|
79
|
+
delegate(*Metadata.cached_attrs.keys, to: :metadata)
|
|
80
|
+
|
|
81
|
+
skip_refresh :all
|
|
82
|
+
|
|
83
|
+
##
|
|
84
|
+
# :method: traded_picks
|
|
85
|
+
# All picks in the Draft that were traded.
|
|
86
|
+
#
|
|
87
|
+
# @return [{SleeperRb::Resources::TradedPickArray}[rdoc-ref:SleeperRb::Resources::TradedPickArray]]
|
|
88
|
+
cached_association :traded_picks do
|
|
89
|
+
retrieve_traded_picks!
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
##
|
|
93
|
+
# :method: draft_picks
|
|
94
|
+
# All picks in the Draft.
|
|
95
|
+
#
|
|
96
|
+
# @return [{SleeperRb::Resources::Draft::Pick}[rdoc-ref:SleeperRb::Resources::Draft::Pick]]
|
|
97
|
+
cached_association :draft_picks do
|
|
98
|
+
retrieve_picks!
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def auction?
|
|
102
|
+
type == "auction"
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def snake?
|
|
106
|
+
type == "snake"
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
private
|
|
110
|
+
|
|
111
|
+
def retrieve_values!
|
|
112
|
+
url = "#{SleeperRb::Utilities::Request::BASE_URL}/draft/#{@draft_id}"
|
|
113
|
+
execute_request(url)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def retrieve_traded_picks!
|
|
117
|
+
url = "#{SleeperRb::Utilities::Request::BASE_URL}/draft/#{@draft_id}/traded_picks"
|
|
118
|
+
response = execute_request(url)
|
|
119
|
+
TradedPickArray.new(response.map { |hash| TradedPick.new(hash) })
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def retrieve_picks!
|
|
123
|
+
url = "#{SleeperRb::Utilities::Request::BASE_URL}/draft/#{@draft_id}/picks"
|
|
124
|
+
response = execute_request(url)
|
|
125
|
+
PickArray.new(response.map { |hash| Pick.new(hash.merge(draft: self)) })
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen-string-literal: true
|
|
2
|
+
|
|
3
|
+
module SleeperRb
|
|
4
|
+
module Resources
|
|
5
|
+
##
|
|
6
|
+
# Implements {SleeperRb::Utilities::ArrayProxy} and wraps Draft objects.
|
|
7
|
+
class DraftArray < SleeperRb::Utilities::ArrayProxy
|
|
8
|
+
##
|
|
9
|
+
# Returns all auction drafts.
|
|
10
|
+
#
|
|
11
|
+
# @return [{SleeperRb::Resources::DraftArray}[rdoc-ref:SleeperRb::Resources::DraftArray]]
|
|
12
|
+
def auction
|
|
13
|
+
where(auction?: true)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
##
|
|
17
|
+
# Returns all snake drafts.
|
|
18
|
+
#
|
|
19
|
+
# @return [{SleeperRb::Resources::DraftArray}[rdoc-ref:SleeperRb::Resources::DraftArray]]
|
|
20
|
+
def snake
|
|
21
|
+
where(snake?: true)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen-string-literal: true
|
|
2
|
+
|
|
3
|
+
module SleeperRb
|
|
4
|
+
module Resources
|
|
5
|
+
class League
|
|
6
|
+
##
|
|
7
|
+
# Represents a matchup for a specific team in a specific week. Two records with the same matchup_id are paired
|
|
8
|
+
# against each other.
|
|
9
|
+
class Matchup
|
|
10
|
+
include SleeperRb::Utilities::Cache
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
# :attr_reader: starters_points
|
|
14
|
+
|
|
15
|
+
##
|
|
16
|
+
# :attr_reader: roster_id
|
|
17
|
+
|
|
18
|
+
##
|
|
19
|
+
# :attr_reader: points
|
|
20
|
+
|
|
21
|
+
##
|
|
22
|
+
# :attr_reader: matchup_id
|
|
23
|
+
|
|
24
|
+
##
|
|
25
|
+
# :attr_reader: custom_points
|
|
26
|
+
|
|
27
|
+
##
|
|
28
|
+
# :method: league
|
|
29
|
+
#
|
|
30
|
+
# @return [{SleeperRb::Resources::League}[rdoc-ref:SleeperRb::Resources::League]]
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# :method: starters
|
|
34
|
+
# All players starting on the roster for this matchup.
|
|
35
|
+
#
|
|
36
|
+
# @return [{SleeperRb::Resources::Player}[rdoc-ref:SleeperRb::Resources::Player]]
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
# :method: players
|
|
40
|
+
# All players on the roster for this matchup.
|
|
41
|
+
#
|
|
42
|
+
# @return [{SleeperRb::Resources::Player}[rdoc-ref:SleeperRb::Resources::Player]]
|
|
43
|
+
|
|
44
|
+
cached_attr :starters_points, :roster_id, :points, :matchup_id, :custom_points, :league,
|
|
45
|
+
starters: ->(array) { array&.map { |id| Player.new(player_id: id) } },
|
|
46
|
+
players: ->(array) { array&.map { |id| Player.new(player_id: id) } }
|
|
47
|
+
|
|
48
|
+
skip_refresh :all
|
|
49
|
+
|
|
50
|
+
##
|
|
51
|
+
# :method: roster
|
|
52
|
+
#
|
|
53
|
+
# @return [{SleeperRb::Resources::League::Roster}[rdoc-ref:SleeperRb::Resources::League::Roster]]
|
|
54
|
+
cached_association :roster do
|
|
55
|
+
retrieve_roster!
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
private
|
|
59
|
+
|
|
60
|
+
def retrieve_roster!
|
|
61
|
+
league.rosters.detect { |roster| roster.roster_id == roster_id }
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|