cli_epl_table 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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