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