cli_epl_table 0.1.0 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f15597083895a3d98154823d968f9ba18d141bc9
4
- data.tar.gz: 9dff3fbf56da55bb9f18a17eeda82673e48aff22
2
+ SHA256:
3
+ metadata.gz: b88a03bbfdbd7b86283a764037cb01edc29c044e6f7ad7374ad104b0f1a82948
4
+ data.tar.gz: ca0ae3e2a7b4bc9f5dcc23a4f4f335e17496a4a41d6d5fea281855de365e2fcb
5
5
  SHA512:
6
- metadata.gz: f3630b28dc87689fea61a268e8246611f04bcf0835654c4322ea00a7a4bad7357152b11ffd89b425598a4e5881dc4eba4879015e608b91e3af0f8b0ace6166b1
7
- data.tar.gz: cad3230bb5cf770d8d3d591566bb23d91b9681f68b973ce34cf9d37b7e021cf641ad1afcdf3003ee53a1c425290ead7fce09d7b660aeae7f9af4979e6cca0104
6
+ metadata.gz: c2164eee66dda34db949a53dfc283f3855c6a995e80e007eaeeae784471643c59ca197b6b63c7446d09f3988caba35986e45348d5030e3726883d4c2b2b7d8cf
7
+ data.tar.gz: 1eaa36a5c5faa87680da114e6a143c6aeac9f169e9e67fbf3bbeeb93fa686a1a43f4e90b2ddb39856e296b569d64b433b3855b0a1320974e4f3f133c6c11f41c
@@ -0,0 +1,6 @@
1
+ {
2
+ "ExpandedNodes": [
3
+ ""
4
+ ],
5
+ "PreviewInSolutionExplorer": false
6
+ }
Binary file
Binary file
@@ -15,6 +15,8 @@ GEM
15
15
  diff-lcs (1.3)
16
16
  method_source (0.9.2)
17
17
  mini_portile2 (2.4.0)
18
+ nokogiri (1.10.3-x64-mingw32)
19
+ mini_portile2 (~> 2.4.0)
18
20
  nokogiri (1.10.3-x86-mingw32)
19
21
  mini_portile2 (~> 2.4.0)
20
22
  pry (0.12.2)
@@ -36,6 +38,7 @@ GEM
36
38
  rspec-support (3.8.2)
37
39
 
38
40
  PLATFORMS
41
+ x64-mingw32
39
42
  x86-mingw32
40
43
 
41
44
  DEPENDENCIES
@@ -46,4 +49,4 @@ DEPENDENCIES
46
49
  rspec (~> 3.0)
47
50
 
48
51
  BUNDLED WITH
49
- 2.0.1
52
+ 2.0.2
@@ -0,0 +1,42 @@
1
+ <!-- NOTES.md -->
2
+
3
+ TODO:
4
+
5
+ 1. Scrape premierleague.com/table - Scraper
6
+ 2. Take data from scrape and save them as teams - Team builder
7
+ 3. Create CLI using teams data - CLI
8
+
9
+ Scraper:
10
+
11
+ 1. Scrape the website
12
+ 2. Make sure it doesn't have to scrape more than once
13
+
14
+ Teams:
15
+
16
+ 1. Get the scraped data from Scraper
17
+ 2. Create the teams, with attributes, using the scraped data
18
+ 3. Take the teams and put them in an easy to use list
19
+
20
+ CLI:
21
+
22
+ 1. Greet the user and display the table
23
+ 2. Tell user what options they have for input:
24
+ table, team number, exit
25
+ 3. When user types table, show table again
26
+ 4. When user types a team number, display information about that team only
27
+ 5. When user types exit, show a thank you message and exit
28
+
29
+ Table Layout:
30
+
31
+ English Premier League Table:
32
+ 1. Manchester City - 50 points
33
+ 2. Manchester United - 48 points
34
+ 3. Arsenal - 46 points
35
+ 4. etc
36
+
37
+ Team Layout:
38
+
39
+ Team Name: Manchester City
40
+ Position: 1st place
41
+ Points: 50
42
+ etc
data/README.md CHANGED
@@ -1,34 +1,22 @@
1
- # CliEplTable
1
+ # epl
2
2
 
3
3
  Hey there!
4
4
 
5
- `epl` (short for cli_epl_gem) is a gem to view the current English Premier League table in your terminal. You can view the full table or check individual teams for more statistics.
5
+ `epl` (short for cli_epl_gem) is a ruby gem to view the current English Premier League (EPL) table in your terminal. You can view the full table or check individual teams for more statistics.
6
6
 
7
7
  ## Installation
8
8
 
9
- Add this line to your application's Gemfile:
10
-
11
- ```ruby
12
- gem 'cli_epl_table'
13
- ```
14
-
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
9
+ Install this gem yourself as:
20
10
 
21
11
  $ gem install cli_epl_table
22
12
 
23
13
  ## Usage
24
14
 
25
- Once `cli_epl_table` is installed, all you have to do is type `epl` in your terminal. It will load up the EPL table and you can explore from there.
26
-
27
- <!-- ## Development
15
+ Once `cli_epl_table` is installed, all you have to do is run the command:
28
16
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
17
+ $ epl
30
18
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). -->
19
+ It will load up the current EPL table and you can explore from there.
32
20
 
33
21
  ## Contributing
34
22
 
data/bin/epl ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'cli_epl_table'
5
+ require 'cli_epl_table/scraper'
6
+
7
+ CliEplTable::Sorter.sorted_data.each do |team|
8
+ CliEplTable::Team.new(team)
9
+ end
10
+
11
+ CliEplTable::CLI.call
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
33
33
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
34
34
  end
35
- spec.bindir = "exe"
35
+ spec.bindir = "bin"
36
36
  spec.executables = "epl"
37
37
  spec.require_paths = ["lib"]
38
38
 
@@ -1,6 +1,7 @@
1
1
  require "cli_epl_table/version"
2
2
  require "cli_epl_table/scraper"
3
- require "cli_epl_table/teams"
3
+ require "cli_epl_table/sorter"
4
+ require "cli_epl_table/team"
4
5
  require "cli_epl_table/cli"
5
6
  require 'certified'
6
7
 
@@ -12,7 +12,7 @@ class CliEplTable::CLI
12
12
  puts "English Premier League Table:".blue
13
13
  # puts "1. Man City - points"
14
14
  # puts "2. Man U - points"
15
- @teams = CliEplTable::Teams.list
15
+ @teams = CliEplTable::Team.all
16
16
  @teams.each do |team|
17
17
  puts "#{team.position}. ".yellow + "#{team.name}".blue + " - " + "#{team.points} points".red
18
18
  end
@@ -0,0 +1,9 @@
1
+ class CliEplTable::Sorter
2
+ def self.sorted_data
3
+ team_data = CliEplTable::Scraper.scrape_site.search('tbody tr[data-compseason="274"]')
4
+
5
+ team_array = []
6
+ team_data.each {|team| team_array << team}
7
+ team_array
8
+ end
9
+ end
@@ -0,0 +1,24 @@
1
+ class CliEplTable::Team
2
+ attr_accessor :position, :name, :points, :games_played, :games_won, :games_drawn, :games_lost, :goals_for, :goals_against, :goal_differential
3
+ @@all = []
4
+
5
+ # define all
6
+ def self.all
7
+ @@all
8
+ end
9
+
10
+ # init all teams with corresponding attributes from the scraped data
11
+ def initialize(data)
12
+ @position = data.css("span.value").text
13
+ @name = data.css("td.team span.long").text
14
+ @points = data.css("td.points").text
15
+ @games_played = data.css("td")[3].text
16
+ @games_won = data.css("td")[4].text
17
+ @games_drawn = data.css("td")[5].text
18
+ @games_lost = data.css("td")[6].text
19
+ @goals_for = data.css("td")[7].text
20
+ @goals_against = data.css("td")[8].text
21
+ @goal_differential = data.css("td")[9].text.strip
22
+ @@all << self
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module CliEplTable
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cli_epl_table
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Cardle
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-18 00:00:00.000000000 Z
11
+ date: 2019-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -121,20 +121,26 @@ files:
121
121
  - ".gitignore"
122
122
  - ".rspec"
123
123
  - ".travis.yml"
124
+ - ".vs/VSWorkspaceState.json"
125
+ - ".vs/cli_epl_table/v15/.suo"
126
+ - ".vs/slnx.sqlite"
127
+ - ".vs/slnx.sqlite-journal"
124
128
  - CODE_OF_CONDUCT.md
125
129
  - Gemfile
126
130
  - Gemfile.lock
127
131
  - LICENSE.txt
132
+ - NOTES.md
128
133
  - README.md
129
134
  - Rakefile
130
135
  - bin/console
136
+ - bin/epl
131
137
  - bin/setup
132
138
  - cli_epl_table.gemspec
133
- - exe/epl
134
139
  - lib/cli_epl_table.rb
135
140
  - lib/cli_epl_table/cli.rb
136
141
  - lib/cli_epl_table/scraper.rb
137
- - lib/cli_epl_table/teams.rb
142
+ - lib/cli_epl_table/sorter.rb
143
+ - lib/cli_epl_table/team.rb
138
144
  - lib/cli_epl_table/version.rb
139
145
  homepage: https://github.com/cdcardle/cli_epl_table
140
146
  licenses:
@@ -158,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
164
  version: '0'
159
165
  requirements: []
160
166
  rubyforge_project:
161
- rubygems_version: 2.5.2
167
+ rubygems_version: 2.7.6.2
162
168
  signing_key:
163
169
  specification_version: 4
164
170
  summary: CLI Premier League table in your terminal!
data/exe/epl DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'bundler/setup'
4
- require 'cli_epl_table'
5
- require 'cli_epl_table/scraper'
6
-
7
- CliEplTable::CLI.call
@@ -1,43 +0,0 @@
1
- class CliEplTable::Teams
2
- attr_accessor :name, :position, :games_played, :games_won, :games_drawn, :games_lost, :goals_for, :goals_against, :goal_differential, :points
3
- @@all = []
4
-
5
- # define all
6
- def self.all
7
- @@all
8
- end
9
-
10
- # list of teams created by scraping only once
11
- def self.list
12
- self.teams unless self.all.length > 0
13
- self.all
14
- end
15
-
16
- # get data from CliEplTable::Scraper
17
- def self.data
18
- CliEplTable::Scraper.scrape_site
19
- end
20
-
21
- # use data to create an array of teams with their attributes
22
- def self.teams
23
- teams = self.data.search('tbody tr[data-compseason="274"]')
24
-
25
- team_array = []
26
- teams.each {|team| team_array << team}
27
- team_array.each do |team|
28
- new_team = self.new
29
- new_team.position = team.css("span.value").text
30
- new_team.name = team.css("td.team span.long").text
31
- new_team.points = team.css("td.points").text
32
- new_team.games_played = team.css("td")[3].text
33
- new_team.games_won = team.css("td")[4].text
34
- new_team.games_drawn = team.css("td")[5].text
35
- new_team.games_lost = team.css("td")[6].text
36
- new_team.goals_for = team.css("td")[7].text
37
- new_team.goals_against = team.css("td")[8].text
38
- new_team.goal_differential = team.css("td")[9].text.strip
39
- self.all << new_team
40
- new_team
41
- end
42
- end
43
- end