2019-GCPL-CLI-Table 0.0.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.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/lib/cli.rb +53 -0
  3. data/lib/scraper.rb +20 -0
  4. data/lib/team.rb +38 -0
  5. metadata +46 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 69e9105e1ee85ffbfdd7540a729cf272cbd77e210395aea02fec1c59de7d086f
4
+ data.tar.gz: 1720bfc4a02f56990745444c1ea3281685a3f18b3c648f755b1c116512726c33
5
+ SHA512:
6
+ metadata.gz: 8b4eaa72b72af5c11f88b8075bede628428de5c5720b6e48a3da42b451ae8eedc78258ae8332caa7310ce7a7ad666883e4da9b93f85051c383326bed045e34d8
7
+ data.tar.gz: 1077a5020633aa8509bb0cfb5caefcf6fbf0e6b8319ff399e59ed3fa1dab7ceb057718cc8b05b352eca53a6ca641f8b7bd017174cd24bcf0a53ac0333c5e5d3a
@@ -0,0 +1,53 @@
1
+ require_relative '../lib/scraper.rb'
2
+ require_relative '../lib/team.rb'
3
+
4
+ def table_printer(array)
5
+ counter = 0
6
+ array.map do |team|
7
+ counter += 1
8
+ puts "#{counter}. #{team[0]}"
9
+ end
10
+ puts "Please select a team(1 - 18):"
11
+ end
12
+
13
+ def cli_printer
14
+ puts "Welcome to 2019 GCPL table printer!"
15
+ puts "Select a team to view:"
16
+ end
17
+
18
+ def team_selector
19
+ input = gets.strip.to_i
20
+ input -= 1
21
+ if input <= 18
22
+ table = "Team Name: #{Team.all[input].team_name}\t Games Played: #{Team.all[input].games_played}\n Wins:#{Team.all[input].wins}\t Losses: #{Team.all[input].losses}\t Draws: #{Team.all[input].draws}\t Points: #{Team.all[input].points}\n Goals For: #{Team.all[input].goals_for}\t Goals Against: #{Team.all[input].goals_against}"
23
+ puts table
24
+ else
25
+ puts "Please select a valid team"
26
+ team_selector
27
+ end
28
+ end
29
+
30
+ def choose_again
31
+ puts "Would you like to see a new team? Y/N"
32
+ input = gets.strip
33
+ input = input.upcase
34
+ if input == "Y"
35
+ table_printer(@all_team_data_save)
36
+ team_selector
37
+ choose_again
38
+ elsif input == "N"
39
+ puts "Thank you!"
40
+ else
41
+ puts "Please select Y or N"
42
+ choose_again
43
+ end
44
+ end
45
+
46
+ def print
47
+ cli_printer
48
+ table_printer(@all_team_data_save)
49
+ team_array_build(@all_team_data_save)
50
+ team_selector
51
+ choose_again
52
+ end
53
+
@@ -0,0 +1,20 @@
1
+ require "open-uri"
2
+ require "nokogiri"
3
+
4
+ site = "http://gcplsoccer.bonzidev.com/sam/standings/ss/schedule.php?v=3&divisionID=NDE4MjM5/*"
5
+
6
+ doc = Nokogiri::HTML(open(site))
7
+
8
+ @all_team_data_save = []
9
+
10
+ # Scrapes only team standings from HTML table and shovels into array
11
+
12
+ counter = 1
13
+ while counter >=1 && counter <=18
14
+ trimmed_table = doc.css("//tr")[counter] #selects rows with teams
15
+ counter += 1
16
+ textify = trimmed_table.css("td").text.gsub(/(\n|\t|\r)/, " ").gsub(/>\s*</, "><").squeeze(" ") # takes team rows and removes formatting
17
+ text = textify.scan(/[a-zA-Z\s][^\d]+|\d+/) #splits data into parts
18
+ stats_table = text.join(",").split(",") #transforms into usable array
19
+ @all_team_data_save << Array.new(stats_table) #saves data inside an array
20
+ end
@@ -0,0 +1,38 @@
1
+ require_relative '../lib/scraper.rb'
2
+
3
+ class Team
4
+ attr_reader :team_name, :games_played, :wins, :losses, :draws, :points, :goals_for, :goals_against
5
+ @@all = []
6
+
7
+ def initialize(team_name, games_played, wins, losses, draws, points, goals_for, goals_against)
8
+ @team_name = team_name
9
+ @games_played = games_played
10
+ @wins = wins
11
+ @losses = losses
12
+ @draws = draws
13
+ @points = points
14
+ @goals_for = goals_for
15
+ @goals_against = goals_against
16
+ @@all << self
17
+ end
18
+
19
+ def self.all
20
+ @@all
21
+ end
22
+
23
+
24
+ end
25
+
26
+ def team_array_build(array)
27
+ array.each do |team_data|
28
+ team_name = team_data[0].strip
29
+ games_played = team_data[1]
30
+ wins = team_data[2]
31
+ losses = team_data[3]
32
+ draws = team_data[4]
33
+ points = team_data[5]
34
+ goals_for = team_data[6]
35
+ goals_against = team_data[7]
36
+ Team.new(team_name, games_played, wins, losses, draws, points, goals_for, goals_against)
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: 2019-GCPL-CLI-Table
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Michael Lynch
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-10-15 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: michael@michaelrlynch.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/cli.rb
20
+ - lib/scraper.rb
21
+ - lib/team.rb
22
+ homepage: https://rubygems.org/gems.2019-GCPL-CLI-Table
23
+ licenses:
24
+ - MIT
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.7.6
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: GCPL Season Table printer
46
+ test_files: []