mlb-standings 0.0.1 → 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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/exe/mlb-standings +25 -21
  3. data/mlb-standings.gemspec +1 -1
  4. metadata +11 -19
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ee6fe273d6dec0be7ec90bb6e6073c67678a131b
4
+ data.tar.gz: ce157f7e84691d58471c475fffce4e8a55937df9
5
+ SHA512:
6
+ metadata.gz: ef292da22f406c80132203193e6190299fb28c8f50e5c8a2932ee1d6b9b0dd83e09050e23778cead637609ae554702466c713860a491c6374302c35546d0dcee
7
+ data.tar.gz: 700d085c9be3f2cbc16cdc0ebfa03d3e53522debc2c337a9dec69adff15dac8f43e11d8a35af414aace0a3d7368fb24ae0e275d1b2c51197601d859e63285ca9
@@ -6,46 +6,50 @@ require 'nokogiri'
6
6
  def main
7
7
  html = Net::HTTP.get(URI('http://espn.go.com/mlb/standings'))
8
8
  doc = Nokogiri::HTML(html)
9
- standings = doc.at_css('table')
9
+
10
+ standings_tables = doc.css("table.standings")
10
11
 
11
12
  x = TableMaker.new
12
- standings.search('./tr').each do |tr|
13
- x.format(tr)
13
+ standings_tables.each do |table|
14
+ league_name = table.at_css("caption").text
15
+ x.caption league_name
16
+ table.search("./tr").each do |tr|
17
+ if "th" == tr.first_element_child.node_name
18
+ x.th(tr)
19
+ else
20
+ x.td(tr)
21
+ end
22
+ end
14
23
  end
15
24
  end
16
25
 
17
26
  class TableMaker
18
- def format(tr)
19
- send(tr['class'].split(' ').first, tr)
20
- end
21
-
22
- def stathead(tr)
23
- puts Divider, tr.text
27
+ def caption(str)
28
+ puts Divider, str
24
29
  end
25
30
 
26
- def colhead(tr)
31
+ def th(tr)
27
32
  puts Underline
28
33
  row(tr)
34
+ puts Underline
29
35
  end
30
36
 
31
- def oddrow(tr)
32
- row(tr)
33
- end
34
-
35
- def evenrow(tr)
37
+ def td(tr)
36
38
  row(tr)
37
39
  end
38
40
 
39
41
  def row(tr)
40
- division_name, *columns = tr.search('./td').map { |td| td.text }
41
- division_name = division_name.ljust(15, ' ')
42
- columns = columns.map { |column| column.rjust(8, ' ') }
43
- columns = columns.take((TermWidth - 15) / 8)
44
- puts "#{division_name}#{columns.join}"
42
+ columns = tr.element_children.map { |td| td.text }
43
+ columns = columns.map { |column| column.rjust(8, ' ') }
44
+ if abbr = tr.first_element_child.at_css("abbr")
45
+ columns[0] = abbr.text.rjust(8, ' ')
46
+ end
47
+ columns = columns.take((TermWidth - 15) / 8)
48
+ puts columns.join
45
49
  end
46
50
 
47
51
  TermWidth = STDOUT.tty? ? `tput cols`.to_i : 103
48
- Divider = '-' * TermWidth
52
+ Divider = '=' * TermWidth
49
53
  Underline = '-' * TermWidth
50
54
  end
51
55
 
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "mlb-standings"
7
- spec.version = '0.0.1'
7
+ spec.version = '1.0.0'
8
8
  spec.authors = ["Matt Burke"]
9
9
  spec.email = ["spraints@gmail.com"]
10
10
  spec.description =
metadata CHANGED
@@ -1,36 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mlb-standings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Matt Burke
9
8
  autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
12
- date: 2013-04-10 00:00:00.000000000 Z
11
+ date: 2015-04-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: nokogiri
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: bundler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,17 +41,15 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: Get MLB stuffs
@@ -77,26 +70,25 @@ files:
77
70
  homepage: ''
78
71
  licenses:
79
72
  - MIT
73
+ metadata: {}
80
74
  post_install_message:
81
75
  rdoc_options: []
82
76
  require_paths:
83
77
  - lib
84
78
  required_ruby_version: !ruby/object:Gem::Requirement
85
- none: false
86
79
  requirements:
87
- - - ! '>='
80
+ - - '>='
88
81
  - !ruby/object:Gem::Version
89
82
  version: '0'
90
83
  required_rubygems_version: !ruby/object:Gem::Requirement
91
- none: false
92
84
  requirements:
93
- - - ! '>='
85
+ - - '>='
94
86
  - !ruby/object:Gem::Version
95
87
  version: '0'
96
88
  requirements: []
97
89
  rubyforge_project:
98
- rubygems_version: 1.8.23
90
+ rubygems_version: 2.0.14
99
91
  signing_key:
100
- specification_version: 3
92
+ specification_version: 4
101
93
  summary: Get MLB stuffs
102
94
  test_files: []