sportify 0.0.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5584ba62b7937c79c77eda01d6c5712ee8d48522
4
- data.tar.gz: b896277c59c7aee193edc37d44873ff2e582ae84
3
+ metadata.gz: 1de05f607825ac2ca160f35d63415d00894c12b5
4
+ data.tar.gz: 654cfc4fd179150a80c99cc85231ad1886a5e2e5
5
5
  SHA512:
6
- metadata.gz: c6959e9727b6585ed3831821378d86f800afee882afad5dc217b79893112516880d704cd39ddab6105e8638c0f32025903aabd5a830a9a4a273f57c9eee73b1b
7
- data.tar.gz: 5ef6de1a0f4d02fd06a00b6cf953285306a6a8ff0bec1d337b951eeaa56ef36ee8effc89ef5db8c079f642282b79673e1a44e73d4c2533ccd5840e16f80dff91
6
+ metadata.gz: fd4712c4b33009bbd1cfd2c74938b46b5cbb79dfae7f1eb8c67c4a384da25f92384808325ba6f68eabda45aec585f8b55b8d015ea91ecc7d7b6c2e2c19daefa6
7
+ data.tar.gz: 72f1cded084acf9fb6a7a98c97357abedb93375686d871102d21b0bd58bec0586810c3bf1536e1d6c18687c8f1e565864dc62337743c979c0b555cb74c41cc04
data/lib/cli/cli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "pry"
2
+
1
3
  class Sportify::CLI
2
4
 
3
5
  def initialize
@@ -63,9 +65,41 @@ class Sportify::CLI
63
65
  end
64
66
 
65
67
  def active_roster_display(team)
66
- @mlb.roster(team).each do |player|
67
- puts "#{player[:player_number]} #{player[:player_name]}"
68
+ @mlb.roster(team).each_with_index do |player, index|
69
+ puts "#{index + 1}) #{player[:player_name]}"
70
+ end
71
+ player_selector(team)
72
+ end
73
+
74
+ def player_selector(team)
75
+ puts ""
76
+ puts "Please input the number next to the player you would like information on or type menu to return to team menu"
77
+ puts ""
78
+ input = gets.strip
79
+ puts ""
80
+ if input.to_i.between?(1, @mlb.roster(team).length)
81
+ player_display(@mlb.roster(team)[input.to_i - 1])
82
+ elsif input.downcase == "menu"
83
+ team_menu(team)
84
+ else
85
+ puts "Invalid input. Please try again."
86
+ player_selector(team)
68
87
  end
69
88
  end
70
89
 
90
+ def player_display(player)
91
+ player = @mlb.player_builder(player)
92
+ puts "You've selected #{player[:name]}"
93
+ puts ""
94
+ puts "Jersey Number: #{player[:number]}"
95
+ puts ""
96
+ puts "Position: #{player[:position]}"
97
+ puts ""
98
+ puts "#{player[:bats_and_throws]}"
99
+ puts ""
100
+ puts "Height/Weight: #{player[:height_weight]}"
101
+ puts ""
102
+ puts "#{player[:age]}"
103
+ end
104
+
71
105
  end
@@ -9,8 +9,18 @@ class Sportify::MLBteams
9
9
  end
10
10
 
11
11
  def roster(team)
12
- @scraper.player_numbers(team).zip(@scraper.player_names(team)).map { |player_number, player_name| {player_number: player_number, player_name: player_name}}
12
+ @scraper.player_names(team).zip(@scraper.player_urls(team)).map { |player_name, player_url| {player_name: player_name, player_url: player_url}}
13
13
  end
14
14
 
15
+ def player_builder(player)
16
+ {
17
+ name: @scraper.name(player),
18
+ number: @scraper.number(player),
19
+ position: @scraper.position(player),
20
+ bats_and_throws: @scraper.bats_and_throws(player),
21
+ height_weight: @scraper.height_weight(player),
22
+ age: @scraper.age(player)
23
+ }
24
+ end
15
25
 
16
26
  end
@@ -32,15 +32,13 @@ class Sportify::MLBscraper
32
32
  end
33
33
 
34
34
  def roster_doc(team)
35
- url = roster_url(team[:team_url])
36
- html = open(url)
35
+ html = open(team[:team_url])
37
36
  Nokogiri::HTML(html)
38
37
  end
39
38
 
40
39
  def player_numbers(team)
41
40
  player_numbers = []
42
- doc = roster_doc(team)
43
- doc.css("table.data.roster_table").css("td.dg-jersey_number").each do |player|
41
+ roster_doc(team).css("table.data.roster_table").css("td.dg-jersey_number").each do |player|
44
42
  player_numbers << player.text
45
43
  end
46
44
  player_numbers
@@ -48,11 +46,48 @@ class Sportify::MLBscraper
48
46
 
49
47
  def player_names(team)
50
48
  player_names = []
51
- doc = roster_doc(team)
52
- doc.css("td.dg-name_display_first_last").css("a").each do |player|
49
+ roster_doc(team).css("td.dg-name_display_first_last").css("a").each do |player|
53
50
  player_names << player.text
54
51
  end
55
52
  player_names
56
53
  end
57
54
 
55
+ def player_urls(team)
56
+ player_urls = []
57
+ team_url = team[:team_url]
58
+ roster_doc(team).css("td.dg-name_display_first_last").css("a").each do |player|
59
+ player_urls << team_url + player["href"]
60
+ end
61
+ player_urls
62
+ end
63
+
64
+ def player_doc(player)
65
+ html = open(player[:player_url])
66
+ Nokogiri::HTML(html)
67
+ end
68
+
69
+ def name(player)
70
+ player_doc(player).css("span.player-header--vitals-name").text
71
+ end
72
+
73
+ def number(player)
74
+ player_doc(player).css("span.player-header--vitals-number").text
75
+ end
76
+
77
+ def position(player)
78
+ player_doc(player).css("div.player-header--vitals").css("ul").css("li")[0].text
79
+ end
80
+
81
+ def bats_and_throws(player)
82
+ player_doc(player).css("div.player-header--vitals").css("ul").css("li")[1].text
83
+ end
84
+
85
+ def height_weight(player)
86
+ player_doc(player).css("div.player-header--vitals").css("ul").css("li.player-header--vitals-height").text
87
+ end
88
+
89
+ def age(player)
90
+ player_doc(player).css("div.player-header--vitals").css("ul").css("li.player-header--vitals-age").text
91
+ end
92
+
58
93
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruce Hillsworth