standings 0.1
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 +15 -0
- data/bin/standings +3 -0
- data/config/environment.rb +11 -0
- data/lib/displayer.rb +27 -0
- data/lib/standings.rb +2 -0
- data/lib/table_scraper.rb +26 -0
- data/lib/team.rb +18 -0
- metadata +50 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
Y2QzYTA3YzM1ZjdkMTkyZWZiNDc0ZGRhZWMzYjEzNzU2NDlmZDdiNw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MjhiNmQ2MGUyYjZlZmFjZTA4MWRkN2FmNDcwNGI3MmZhMTAzOGI2OQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MTc3MWZjZDZkZDIzOWQ4YWUzMjhmZjhjNWNjNjIwZGJiMWJlZDc4YTFiNzBh
|
10
|
+
MzM1YWY0NWYyZmE4MDY1MmJlM2I5MzdiYTljYzg3NmJkM2ZkOGNmM2JlMTE5
|
11
|
+
NGIyZDU3Zjg1NmIyZGNhNjk5MDg0Y2JmNmNkMmMzMGFjMzJkMWY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OGUyZDg1ZTMzY2U1OTA5ZWE0ZGJkNWM4OGVhOGI3MDAwMTJiYWI3NmNmNWRl
|
14
|
+
ZmMzYzE5ZjlkZjhiZTEwOWI5NDVhZWYzM2VkZWQwMmRhNjI1ZmY3YzliNzkz
|
15
|
+
MWI5OWRhM2I2YjE3NTA0YjM0ZmI2ZGY1N2UxNTQ3ODM4OWRkNTg=
|
data/bin/standings
ADDED
data/lib/displayer.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
class Displayer
|
2
|
+
|
3
|
+
def call
|
4
|
+
TableScraper.new.call
|
5
|
+
display_table
|
6
|
+
end
|
7
|
+
|
8
|
+
def template(team)
|
9
|
+
string = "#{(team.position).ljust(3," ")} #{team.played.ljust(3, " ")} #{team.points.ljust(5, " ")}"
|
10
|
+
if team.position.to_i <= 4
|
11
|
+
string += team.name.green
|
12
|
+
elsif team.position.to_i >= 18
|
13
|
+
string += team.name.red
|
14
|
+
else
|
15
|
+
string += team.name
|
16
|
+
end
|
17
|
+
puts string
|
18
|
+
end
|
19
|
+
|
20
|
+
def display_table
|
21
|
+
puts "-" * 28
|
22
|
+
puts "# P Pts Team"
|
23
|
+
puts "-" * 28
|
24
|
+
Team.all.each { |team| template(team) }
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/lib/standings.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
class TableScraper
|
2
|
+
|
3
|
+
attr_accessor :url, :teams
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@url = "http://www.theguardian.com/football/premierleague/table"
|
7
|
+
end
|
8
|
+
|
9
|
+
def call
|
10
|
+
site = Nokogiri::HTML(open(self.url))
|
11
|
+
self.teams = site.css('.table-football-body tr')[3..-1]
|
12
|
+
build_teams
|
13
|
+
end
|
14
|
+
|
15
|
+
def build_teams
|
16
|
+
teams.length.times do |i|
|
17
|
+
source = teams[i].children
|
18
|
+
Team.new({
|
19
|
+
:name => source[2].children[-1].children.text,
|
20
|
+
:played => source[4].children.text,
|
21
|
+
:points => source[-2].text,
|
22
|
+
:position => source[0].children.text
|
23
|
+
})
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/team.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
class Team
|
2
|
+
attr_accessor :name, :position, :played, :points
|
3
|
+
|
4
|
+
@@teams = []
|
5
|
+
|
6
|
+
def initialize(info)
|
7
|
+
@name = info[:name]
|
8
|
+
@played = info[:played]
|
9
|
+
@points = info[:points]
|
10
|
+
@position = info[:position]
|
11
|
+
@@teams << self
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.all
|
15
|
+
@@teams
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: standings
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.1'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Scott Luptowski
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2010-10-21 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: View the current table of the Barclays Premier League from your terminal
|
14
|
+
email: scottluptowski@gmail.com
|
15
|
+
executables:
|
16
|
+
- standings
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- config/environment.rb
|
21
|
+
- lib/displayer.rb
|
22
|
+
- lib/standings.rb
|
23
|
+
- lib/table_scraper.rb
|
24
|
+
- lib/team.rb
|
25
|
+
- bin/standings
|
26
|
+
homepage: http://www.scottluptowski.com
|
27
|
+
licenses:
|
28
|
+
- MIT
|
29
|
+
metadata: {}
|
30
|
+
post_install_message:
|
31
|
+
rdoc_options: []
|
32
|
+
require_paths:
|
33
|
+
- lib
|
34
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
requirements: []
|
45
|
+
rubyforge_project:
|
46
|
+
rubygems_version: 2.1.4
|
47
|
+
signing_key:
|
48
|
+
specification_version: 4
|
49
|
+
summary: BPL table
|
50
|
+
test_files: []
|