in_or_out 0.1.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 +7 -0
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/.rvmrc +53 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +71 -0
- data/Rakefile +7 -0
- data/config/analyser.yml +1 -0
- data/data/team_shortcode_data.yml +18 -0
- data/in_or_out.gemspec +31 -0
- data/lib/in_or_out.rb +23 -0
- data/lib/in_or_out/models/match.rb +45 -0
- data/lib/in_or_out/models/player.rb +61 -0
- data/lib/in_or_out/models/player_extractor.rb +92 -0
- data/lib/in_or_out/models/scraper.rb +15 -0
- data/lib/in_or_out/models/shortcode_converter.rb +21 -0
- data/lib/in_or_out/models/team.rb +8 -0
- data/lib/in_or_out/version.rb +3 -0
- data/spec/data/finialised_teams.html +3405 -0
- data/spec/data/unfinialised_interchange.html +3360 -0
- data/spec/in_and_out/models/match_spec.rb +86 -0
- data/spec/in_and_out/models/player_extractor_spec.rb +135 -0
- data/spec/in_and_out/models/player_spec.rb +78 -0
- data/spec/in_and_out/models/scraper_spec.rb +17 -0
- data/spec/in_and_out/models/shortcode_converter_spec.rb +19 -0
- data/spec/in_and_out/models/team_spec.rb +4 -0
- data/spec/in_and_out_spec.rb +49 -0
- data/spec/spec_helper.rb +7 -0
- metadata +196 -0
@@ -0,0 +1,86 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ostruct'
|
3
|
+
require 'nokogiri'
|
4
|
+
|
5
|
+
describe InOrOut::Match do
|
6
|
+
|
7
|
+
let(:round) { 2 }
|
8
|
+
let(:team_name) { 'Essendon' }
|
9
|
+
let(:subject) { InOrOut::Match.new(team_name, round)}
|
10
|
+
|
11
|
+
describe 'initialize' do
|
12
|
+
|
13
|
+
before do
|
14
|
+
extracted_players = [ OpenStruct.new(name: 'Gary Ablett', team: 'Gold Coast') ]
|
15
|
+
InOrOut::PlayerExtractor.any_instance.should_receive(:extract).at_least(1).times.and_return(extracted_players)
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:scraper_response) { File.open("#{InOrOut.root}/spec/data/finialised_teams.html").read }
|
19
|
+
|
20
|
+
it 'takes a team name a match round and populates the match' do
|
21
|
+
InOrOut::Scraper.any_instance.should_receive(:scrape).and_return(scraper_response)
|
22
|
+
subject.players.size.should == 1
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
describe 'find' do
|
28
|
+
|
29
|
+
let(:afl_schedule_response) { OpenStruct.new(home_team: 'Essendon',
|
30
|
+
away_team: 'Melbourne',
|
31
|
+
venue: 'MCG',
|
32
|
+
time: Time.new(2013, 04, 6, 19, 40, 0, '+10:00'),
|
33
|
+
round: 2) }
|
34
|
+
let(:player_extractor_response) { [] }
|
35
|
+
let(:subject) { InOrOut::Match.find(team: team_name)}
|
36
|
+
|
37
|
+
it 'returns the next match for the given team name' do
|
38
|
+
AFL::Schedule.any_instance.should_receive(:next_match).with('').and_return(afl_schedule_response)
|
39
|
+
#InOrOut::PlayerExtractor.any_instance.should_receive(:extract).and_return(player_extractor_response)
|
40
|
+
subject.class.should == InOrOut::Match
|
41
|
+
end
|
42
|
+
|
43
|
+
let(:team_name) { '' }
|
44
|
+
|
45
|
+
it 'returns "nil" if no match was found' do
|
46
|
+
AFL::Schedule.any_instance.should_receive(:next_match).with('').and_return(nil)
|
47
|
+
subject.should == nil
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
describe 'finding a player' do
|
53
|
+
|
54
|
+
context 'player does not exit' do
|
55
|
+
|
56
|
+
before do
|
57
|
+
extracted_players = [ OpenStruct.new(name: 'Gary Ablett', team: 'Gold Coast') ]
|
58
|
+
InOrOut::PlayerExtractor.any_instance.should_receive(:extract).at_least(1).times.and_return(extracted_players)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "returns 'nil' if the player can't be found" do
|
62
|
+
InOrOut::Scraper.any_instance.should_receive(:scrape).and_return('')
|
63
|
+
subject.find_player('Jobe Watson', 'Essendon').should == nil
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'player exists' do
|
69
|
+
|
70
|
+
before do
|
71
|
+
extracted_players = [ OpenStruct.new(name: 'Gary Ablett', team: 'Gold Coast') ]
|
72
|
+
InOrOut::PlayerExtractor.any_instance.should_receive(:extract).at_least(1).times.and_return(extracted_players)
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'returns the player' do
|
76
|
+
scraper_response = File.open("#{InOrOut.root}/spec/data/finialised_teams.html").read
|
77
|
+
InOrOut::Scraper.any_instance.should_receive(:scrape).and_return(scraper_response)
|
78
|
+
player = subject.find_player('Gary Ablett', 'Gold Coast')
|
79
|
+
player.name.should == 'Gary Ablett'
|
80
|
+
player.team.should == 'Gold Coast'
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
describe InOrOut::PlayerExtractor do
|
5
|
+
|
6
|
+
describe 'match readyness' do
|
7
|
+
|
8
|
+
let(:subject) { InOrOut::PlayerExtractor.new(match_data).send(:ready?) }
|
9
|
+
|
10
|
+
context 'match data not complete' do
|
11
|
+
|
12
|
+
let(:match_data) { Nokogiri::HTML("<html></html>") }
|
13
|
+
|
14
|
+
it "match as 'not ready'" do
|
15
|
+
subject.should == false
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'match data complete' do
|
21
|
+
|
22
|
+
let(:match_data) { Nokogiri::HTML(File.open("#{InOrOut.root}/spec/data/finialised_teams.html").read) }
|
23
|
+
|
24
|
+
it "match is 'ready'" do
|
25
|
+
subject.should == true
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
let(:match_data) { Nokogiri::HTML(File.open("#{InOrOut.root}/spec/data/finialised_teams.html").read) }
|
34
|
+
let(:subject) { InOrOut::PlayerExtractor.new(match_data).extract }
|
35
|
+
|
36
|
+
describe 'extraction process' do
|
37
|
+
|
38
|
+
it 'takes match data and returns a collection of players' do
|
39
|
+
subject.size.should == 50
|
40
|
+
subject.first.class.should == InOrOut::Player
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'only extracts data if match is ready' do
|
44
|
+
InOrOut::PlayerExtractor.any_instance.should_receive(:ready?).and_return(false)
|
45
|
+
subject.empty?.should == true
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
describe 'attributes extracted' do
|
51
|
+
|
52
|
+
before do
|
53
|
+
InOrOut::ShortcodeConverter.should_receive(:convert).at_least(1).times.with('stk').and_return('St Kilda')
|
54
|
+
InOrOut::ShortcodeConverter.should_receive(:convert).at_least(1).times.with('gcfc').and_return('Gold Coast')
|
55
|
+
end
|
56
|
+
|
57
|
+
%i(name team position number).each do |extracted_attribute|
|
58
|
+
it "extracts a #{extracted_attribute}" do
|
59
|
+
subject.first.send(extracted_attribute).should_not be nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe 'position' do
|
64
|
+
|
65
|
+
let(:subject) { InOrOut::PlayerExtractor.new(match_data).extract }
|
66
|
+
|
67
|
+
describe 'Followers' do
|
68
|
+
|
69
|
+
it 'can be found' do
|
70
|
+
subject.detect { |player| player.position == 'Follower'}.should_not == nil
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
describe 'Full Backs' do
|
76
|
+
|
77
|
+
it 'can be found' do
|
78
|
+
subject.detect { |player| player.position == 'Full Back'}.should_not == nil
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
describe 'Full Forwards' do
|
84
|
+
|
85
|
+
it 'can be found' do
|
86
|
+
subject.detect { |player| player.position == 'Full Forward'}.should_not == nil
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
describe 'Half Forwards' do
|
92
|
+
|
93
|
+
it 'can be found' do
|
94
|
+
subject.detect { |player| player.position == 'Half Forward'}.should_not == nil
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
describe 'Half backs' do
|
100
|
+
|
101
|
+
it 'can be found' do
|
102
|
+
subject.detect { |player| player.position == 'Half Back'}.should_not == nil
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
describe 'Centre' do
|
108
|
+
|
109
|
+
it 'can be found' do
|
110
|
+
subject.detect { |player| player.position == 'Centre'}.should_not == nil
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
describe 'Interchange' do
|
116
|
+
|
117
|
+
it 'can be found' do
|
118
|
+
subject.detect { |player| player.position == 'Interchange'}.should_not == nil
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
describe 'Emergencies' do
|
124
|
+
|
125
|
+
it 'can be found' do
|
126
|
+
subject.detect { |player| player.position == 'Emergency'}.should_not == nil
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
describe InOrOut::Player do
|
5
|
+
|
6
|
+
let(:player_name) { 'Jobe Watson' }
|
7
|
+
let(:team_name) { 'Essendon' }
|
8
|
+
let(:analyser_response) { OpenStruct.new(position: 'Centre', status: 'In') }
|
9
|
+
|
10
|
+
describe 'initialize' do
|
11
|
+
|
12
|
+
let(:subject) { InOrOut::Player }
|
13
|
+
|
14
|
+
it 'requires a player and team name' do
|
15
|
+
subject.new(player_name, team_name).class.should == InOrOut::Player
|
16
|
+
end
|
17
|
+
|
18
|
+
%w(number position).each do |attr|
|
19
|
+
it "accepts '#{attr}' as an optional attribute" do
|
20
|
+
subject.new(player_name, team_name, attr.to_sym => 'attribute value').send(attr.to_sym).should == 'attribute value'
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'sets a status' do
|
26
|
+
subject.new(player_name, team_name, :position => 'Follower').status.should == 'On'
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'analyse' do
|
32
|
+
|
33
|
+
let(:subject) { InOrOut::Player.new(player_name, team_name) }
|
34
|
+
|
35
|
+
context 'next match not found' do
|
36
|
+
|
37
|
+
before do
|
38
|
+
InOrOut::Match.should_receive(:find).and_return(nil)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "returns itself with the a status of 'Unknown'" do
|
42
|
+
subject.send(:analyse).status.should == 'Unknown'
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'next match found' do
|
48
|
+
|
49
|
+
let(:match_double) { double('Match') }
|
50
|
+
let(:player_double) { double('Player') }
|
51
|
+
|
52
|
+
context 'player is playing' do
|
53
|
+
|
54
|
+
before do
|
55
|
+
InOrOut::Match.should_receive(:find).with(team: team_name).and_return(match_double)
|
56
|
+
match_double.should_receive(:find_player).with(player_name,team_name).and_return(player_double)
|
57
|
+
player_double.should_receive(:status).and_return('On')
|
58
|
+
player_double.should_receive(:position).and_return('Centre')
|
59
|
+
player_double.should_receive(:number).and_return(4)
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'returns itself with status set to "On"' do
|
63
|
+
subject.send(:analyse).status.should == 'On'
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'has a "position" and a "number"' do
|
67
|
+
player = subject.send(:analyse)
|
68
|
+
player.position.should == 'Centre'
|
69
|
+
player.number.should == 4
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe InOrOut::Scraper do
|
4
|
+
|
5
|
+
describe 'scrape' do
|
6
|
+
|
7
|
+
context 'found url' do
|
8
|
+
|
9
|
+
it 'returns the urls html as a string' do
|
10
|
+
subject.scrape('http://www.google.com').class.should == String
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe InOrOut::ShortcodeConverter do
|
4
|
+
|
5
|
+
let(:subject) { InOrOut::ShortcodeConverter }
|
6
|
+
|
7
|
+
%i(fre ess nmfc syd melb wce
|
8
|
+
gws stk gcfc bl geel carl
|
9
|
+
rich wb coll haw port adel).each do |shortcode|
|
10
|
+
it "returns the full team name for #{shortcode}" do
|
11
|
+
subject.convert(shortcode).should_not == nil
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'returns a shortcode when a full name is given' do
|
16
|
+
subject.find_shortcode('Essendon').should == 'ess'
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe InOrOut do
|
4
|
+
|
5
|
+
describe 'Player' do
|
6
|
+
|
7
|
+
context 'match is ready' do
|
8
|
+
|
9
|
+
let(:data) { File.open("#{InOrOut.root}/spec/data/finialised_teams.html") }
|
10
|
+
let(:team_name) { 'Gold Coast' }
|
11
|
+
let(:player_name) { 'Gary Ablett' }
|
12
|
+
let(:subject) { InOrOut::Player.new(player_name, team_name) }
|
13
|
+
before do
|
14
|
+
InOrOut::Scraper.any_instance.should_receive(:scrape).and_return(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'player is playing' do
|
18
|
+
|
19
|
+
it 'has a full set of player attributes ' do
|
20
|
+
subject.name.should == 'Gary Ablett'
|
21
|
+
subject.team.should == 'Gold Coast'
|
22
|
+
subject.position.should == 'Centre'
|
23
|
+
subject.status.should == 'On'
|
24
|
+
subject.number.should == 9
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'match is not ready/found' do
|
32
|
+
|
33
|
+
let(:team_name) { 'Essendon' }
|
34
|
+
let(:player_name) { 'Jobe Watson' }
|
35
|
+
let(:subject) { InOrOut::Player.new(player_name, team_name) }
|
36
|
+
|
37
|
+
before do
|
38
|
+
InOrOut::Match.should_receive(:find).at_least(1).times.and_return(nil)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'status is set to "unknown"' do
|
42
|
+
subject.status.should == 'Unknown'
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,196 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: in_or_out
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sebastian Glazebrook
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-04-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: afl_schedule
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.1.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.1.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: active_support
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: nokogiri
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mechanize
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: bundler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.3'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.13.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.13.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec-radar
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: This gem will help you check whether you AFL fantasy football players
|
126
|
+
are playing this week or not
|
127
|
+
email:
|
128
|
+
- me@sebglazebrook.com
|
129
|
+
executables: []
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- .gitignore
|
134
|
+
- .rspec
|
135
|
+
- .rvmrc
|
136
|
+
- Gemfile
|
137
|
+
- LICENSE.txt
|
138
|
+
- README.md
|
139
|
+
- Rakefile
|
140
|
+
- config/analyser.yml
|
141
|
+
- data/team_shortcode_data.yml
|
142
|
+
- in_or_out.gemspec
|
143
|
+
- lib/in_or_out.rb
|
144
|
+
- lib/in_or_out/models/match.rb
|
145
|
+
- lib/in_or_out/models/player.rb
|
146
|
+
- lib/in_or_out/models/player_extractor.rb
|
147
|
+
- lib/in_or_out/models/scraper.rb
|
148
|
+
- lib/in_or_out/models/shortcode_converter.rb
|
149
|
+
- lib/in_or_out/models/team.rb
|
150
|
+
- lib/in_or_out/version.rb
|
151
|
+
- spec/data/finialised_teams.html
|
152
|
+
- spec/data/unfinialised_interchange.html
|
153
|
+
- spec/in_and_out/models/match_spec.rb
|
154
|
+
- spec/in_and_out/models/player_extractor_spec.rb
|
155
|
+
- spec/in_and_out/models/player_spec.rb
|
156
|
+
- spec/in_and_out/models/scraper_spec.rb
|
157
|
+
- spec/in_and_out/models/shortcode_converter_spec.rb
|
158
|
+
- spec/in_and_out/models/team_spec.rb
|
159
|
+
- spec/in_and_out_spec.rb
|
160
|
+
- spec/spec_helper.rb
|
161
|
+
homepage: ''
|
162
|
+
licenses:
|
163
|
+
- MIT
|
164
|
+
metadata: {}
|
165
|
+
post_install_message:
|
166
|
+
rdoc_options: []
|
167
|
+
require_paths:
|
168
|
+
- lib
|
169
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - '>='
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '0'
|
179
|
+
requirements: []
|
180
|
+
rubyforge_project:
|
181
|
+
rubygems_version: 2.0.0
|
182
|
+
signing_key:
|
183
|
+
specification_version: 4
|
184
|
+
summary: Hopefully this can help you with your AFL fantasy football. It's an easy
|
185
|
+
gem. Let me know if you find any issues.
|
186
|
+
test_files:
|
187
|
+
- spec/data/finialised_teams.html
|
188
|
+
- spec/data/unfinialised_interchange.html
|
189
|
+
- spec/in_and_out/models/match_spec.rb
|
190
|
+
- spec/in_and_out/models/player_extractor_spec.rb
|
191
|
+
- spec/in_and_out/models/player_spec.rb
|
192
|
+
- spec/in_and_out/models/scraper_spec.rb
|
193
|
+
- spec/in_and_out/models/shortcode_converter_spec.rb
|
194
|
+
- spec/in_and_out/models/team_spec.rb
|
195
|
+
- spec/in_and_out_spec.rb
|
196
|
+
- spec/spec_helper.rb
|