race_partner_registrations 0.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 +7 -0
- data/.gitignore +14 -0
- data/.rspec +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +41 -0
- data/Rakefile +2 -0
- data/assets/images/entrance_list.jpg +0 -0
- data/exec/bundler +16 -0
- data/exec/htmldiff +16 -0
- data/exec/ldiff +16 -0
- data/exec/nokogiri +16 -0
- data/exec/rake +16 -0
- data/exec/rspec +16 -0
- data/lib/race_partner_registrations.rb +11 -0
- data/lib/race_partner_registrations/event.rb +76 -0
- data/lib/race_partner_registrations/registration.rb +11 -0
- data/lib/race_partner_registrations/version.rb +3 -0
- data/race_partner_registrations.gemspec +27 -0
- data/spec/lib/race_partner_registrations/event_spec.rb +83 -0
- data/spec/lib/race_partner_registrations/registration_spec.rb +31 -0
- data/spec/spec_helper.rb +1 -0
- metadata +125 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 829a089bdfa591b49c8ac0779fcec3e18317dd20
|
|
4
|
+
data.tar.gz: 3530b3c0562e2d8fcf72490b7f17755ea8950b1d
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 090adc25ca86353750f9470cd47817c0d8243faa23a496e4d6927b60adc7935ca42fe5b882e71cf7c995197cb8e3a2cbc7ed28977700aff5a8021e8725c07256
|
|
7
|
+
data.tar.gz: 0715201e670f578c3314daeb606205fc3bc07173cbf2882376f77eda7347624b5961c8af0ae4d438118383ee5a8f0f77f9b4dc4b7e4288eb9aa460ef98bd2c86
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2014 Sean Devine
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Race Partner Registrations
|
|
2
|
+
|
|
3
|
+
[Race Partner](http://www.racepartner.com) is a platform for registration, volunteer management, and marketing for road races and other endurance events.
|
|
4
|
+
|
|
5
|
+
[racepartner.com](http://www.racepartner.com) enables users to browse the registrations for a given event.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
`race_partner_registrations` enables you to extract these registration lists.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
The `name` and `location` are extracted from the entrance list.
|
|
14
|
+
|
|
15
|
+
### Examples
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
$ gem install race_partner_registrations
|
|
19
|
+
$ irb
|
|
20
|
+
irb> require 'race_partner_registrations'
|
|
21
|
+
irb> url = "https://register.racepartner.com/falmouthroadrace/entrants"
|
|
22
|
+
irb> event = RacePartnerRegistrations::Event.new(url)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
An event can be converted to a CSV.
|
|
26
|
+
```
|
|
27
|
+
irb> puts event.to_csv
|
|
28
|
+
name,location
|
|
29
|
+
Sean Devine,"Suffield, CT"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
You can also download the registrations and iterate through them directly.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
irb> event.download_registrations!
|
|
36
|
+
irb> registration = event.registrations.first
|
|
37
|
+
irb> registration.name
|
|
38
|
+
=> "Sean Devine"
|
|
39
|
+
irb> registration.location
|
|
40
|
+
=> "Suffield, CT"
|
|
41
|
+
```
|
data/Rakefile
ADDED
|
Binary file
|
data/exec/bundler
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# This file was generated by Bundler.
|
|
4
|
+
#
|
|
5
|
+
# The application 'bundler' is installed as part of a gem, and
|
|
6
|
+
# this file is here to facilitate running it.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
require 'pathname'
|
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
|
11
|
+
Pathname.new(__FILE__).realpath)
|
|
12
|
+
|
|
13
|
+
require 'rubygems'
|
|
14
|
+
require 'bundler/setup'
|
|
15
|
+
|
|
16
|
+
load Gem.bin_path('race_partner_registrations', 'bundler')
|
data/exec/htmldiff
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# This file was generated by Bundler.
|
|
4
|
+
#
|
|
5
|
+
# The application 'htmldiff' is installed as part of a gem, and
|
|
6
|
+
# this file is here to facilitate running it.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
require 'pathname'
|
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
|
11
|
+
Pathname.new(__FILE__).realpath)
|
|
12
|
+
|
|
13
|
+
require 'rubygems'
|
|
14
|
+
require 'bundler/setup'
|
|
15
|
+
|
|
16
|
+
load Gem.bin_path('race_partner_registrations', 'htmldiff')
|
data/exec/ldiff
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# This file was generated by Bundler.
|
|
4
|
+
#
|
|
5
|
+
# The application 'ldiff' is installed as part of a gem, and
|
|
6
|
+
# this file is here to facilitate running it.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
require 'pathname'
|
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
|
11
|
+
Pathname.new(__FILE__).realpath)
|
|
12
|
+
|
|
13
|
+
require 'rubygems'
|
|
14
|
+
require 'bundler/setup'
|
|
15
|
+
|
|
16
|
+
load Gem.bin_path('race_partner_registrations', 'ldiff')
|
data/exec/nokogiri
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# This file was generated by Bundler.
|
|
4
|
+
#
|
|
5
|
+
# The application 'nokogiri' is installed as part of a gem, and
|
|
6
|
+
# this file is here to facilitate running it.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
require 'pathname'
|
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
|
11
|
+
Pathname.new(__FILE__).realpath)
|
|
12
|
+
|
|
13
|
+
require 'rubygems'
|
|
14
|
+
require 'bundler/setup'
|
|
15
|
+
|
|
16
|
+
load Gem.bin_path('race_partner_registrations', 'nokogiri')
|
data/exec/rake
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# This file was generated by Bundler.
|
|
4
|
+
#
|
|
5
|
+
# The application 'rake' is installed as part of a gem, and
|
|
6
|
+
# this file is here to facilitate running it.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
require 'pathname'
|
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
|
11
|
+
Pathname.new(__FILE__).realpath)
|
|
12
|
+
|
|
13
|
+
require 'rubygems'
|
|
14
|
+
require 'bundler/setup'
|
|
15
|
+
|
|
16
|
+
load Gem.bin_path('race_partner_registrations', 'rake')
|
data/exec/rspec
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# This file was generated by Bundler.
|
|
4
|
+
#
|
|
5
|
+
# The application 'rspec' is installed as part of a gem, and
|
|
6
|
+
# this file is here to facilitate running it.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
require 'pathname'
|
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
|
11
|
+
Pathname.new(__FILE__).realpath)
|
|
12
|
+
|
|
13
|
+
require 'rubygems'
|
|
14
|
+
require 'bundler/setup'
|
|
15
|
+
|
|
16
|
+
load Gem.bin_path('rspec-core', 'rspec')
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
module RacePartnerRegistrations
|
|
2
|
+
class Event
|
|
3
|
+
class InvalidUrlError < StandardError; end
|
|
4
|
+
class RegistrationsNotDownloadedError < StandardError; end
|
|
5
|
+
|
|
6
|
+
attr_reader :url
|
|
7
|
+
|
|
8
|
+
def initialize(url)
|
|
9
|
+
@url = url
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def valid?
|
|
13
|
+
page.search("div#EntrantSearchForm").any?
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def registrations
|
|
17
|
+
@registrations || raise(RegistrationsNotDownloadedError, "download_registrations! has not been sent to this event.")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def downloaded?
|
|
21
|
+
!!@registrations
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def download_registrations!
|
|
25
|
+
raise InvalidUrlError unless valid?
|
|
26
|
+
@registrations = []
|
|
27
|
+
get_state_values(page).each do |state_value|
|
|
28
|
+
agent.get(single_page_url(state_value)).search("div#EntrantList tr").each do |row|
|
|
29
|
+
name_td, location_td = [0,1].collect { |n| row.search("td")[n] }
|
|
30
|
+
next unless name_td && location_td
|
|
31
|
+
@registrations << Registration.new(name_td.text.strip, location_td.text.strip)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
@registrations
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def to_csv
|
|
38
|
+
download_registrations! unless downloaded?
|
|
39
|
+
CSV.generate do |csv|
|
|
40
|
+
csv << ["name", "location"]
|
|
41
|
+
registrations.each do |registration|
|
|
42
|
+
csv << [:name, :location].collect { |attr| registration.send(attr) }
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
def page
|
|
50
|
+
@page ||= agent.get(url)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def agent
|
|
54
|
+
@agent = Mechanize.new
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def get_form(page)
|
|
58
|
+
form_action = page.search("div#EntrantSearchForm form").first.attr("action")
|
|
59
|
+
page.form_with(action: form_action)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def get_state_values(page)
|
|
63
|
+
get_form(page).field_with(id: "state").options.collect do |state_option|
|
|
64
|
+
state_option.value
|
|
65
|
+
end.reject do |state_value|
|
|
66
|
+
state_value.length == 0
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def single_page_url(state_value)
|
|
71
|
+
base_url = url.split("?")[0]
|
|
72
|
+
base_url + "?State=#{state_value}&PageSize=#{200_000_000}&PageIndex=1&Submitted=true"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'race_partner_registrations/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "race_partner_registrations"
|
|
8
|
+
spec.version = RacePartnerRegistrations::VERSION
|
|
9
|
+
spec.authors = ["Sean Devine"]
|
|
10
|
+
spec.email = ["barelyknown@icloud.com"]
|
|
11
|
+
spec.summary = "Download registration list from a Race Partner event."
|
|
12
|
+
spec.description = spec.summary
|
|
13
|
+
spec.homepage = ""
|
|
14
|
+
spec.license = "MIT"
|
|
15
|
+
|
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
|
+
spec.bindir = 'exec'
|
|
19
|
+
spec.test_files = spec.files.grep(%r{^(spec)/})
|
|
20
|
+
spec.require_paths = ["lib"]
|
|
21
|
+
|
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
|
23
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
|
24
|
+
spec.add_development_dependency "rspec", "~> 3.0.0"
|
|
25
|
+
|
|
26
|
+
spec.add_dependency "mechanize", "~> 2.7.3"
|
|
27
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
module RacePartnerRegistrations
|
|
2
|
+
describe Event do
|
|
3
|
+
|
|
4
|
+
subject do
|
|
5
|
+
described_class.new url
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
context "when initialized with a valid url" do
|
|
9
|
+
let :url do
|
|
10
|
+
"https://register.racepartner.com/falmouthroadrace/entrants"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "sets and gets the url" do
|
|
14
|
+
expect(subject.url).to eq url
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "is valid" do
|
|
18
|
+
expect(subject).to be_valid
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe "#downloaded?" do
|
|
22
|
+
context "when the @registrations is not nil" do
|
|
23
|
+
before do
|
|
24
|
+
subject.instance_variable_set "@registrations", []
|
|
25
|
+
end
|
|
26
|
+
it "is downloaded" do
|
|
27
|
+
expect(subject).to be_downloaded
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
context "when the @registrations is nil" do
|
|
31
|
+
before do
|
|
32
|
+
subject.instance_variable_set "@registrations", nil
|
|
33
|
+
end
|
|
34
|
+
it "is not downloaded" do
|
|
35
|
+
expect(subject).to_not be_downloaded
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe "#download_registrations!" do
|
|
41
|
+
it "does not raise an exception", :slow do
|
|
42
|
+
expect{subject.download_registrations!}.to_not raise_error
|
|
43
|
+
end
|
|
44
|
+
it "sets the registrations", :slow do
|
|
45
|
+
subject.download_registrations!
|
|
46
|
+
expect(subject.registrations).to_not be_empty
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
describe "#to_csv" do
|
|
51
|
+
before do
|
|
52
|
+
allow(subject).to receive(:download_registrations!)
|
|
53
|
+
allow(subject).to receive(:registrations).and_return([Registration.new("Sean Devine", "Suffield, CT")])
|
|
54
|
+
end
|
|
55
|
+
it "generates the csv" do expect(subject.to_csv).to eq "name,location\nSean Devine,\"Suffield, CT\"\n"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
context "when initialized with an invalid url" do
|
|
61
|
+
let :url do
|
|
62
|
+
"https://register.racepartner.com/falmouthroadrace"
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "is not valid" do
|
|
66
|
+
expect(subject).to_not be_valid
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
describe "#download_registrations!" do
|
|
70
|
+
it "raises an exception" do
|
|
71
|
+
expect{subject.download_registrations!}.to raise_error Event::InvalidUrlError
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
describe "#registrations" do
|
|
76
|
+
it "raises an exception" do
|
|
77
|
+
expect{subject.registrations}.to raise_error Event::RegistrationsNotDownloadedError
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module RacePartnerRegistrations
|
|
2
|
+
describe Registration do
|
|
3
|
+
|
|
4
|
+
let :name do
|
|
5
|
+
"Sean Devine"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
let :location do
|
|
9
|
+
"Suffield, CT"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
context "when initialized with the name and location" do
|
|
13
|
+
subject do
|
|
14
|
+
described_class.new name, location
|
|
15
|
+
end
|
|
16
|
+
it "sets and gets the name" do
|
|
17
|
+
expect(subject.name).to eq name
|
|
18
|
+
end
|
|
19
|
+
it "sets and get the location" do
|
|
20
|
+
expect(subject.location).to eq location
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
context "when initialized without a name and location" do
|
|
25
|
+
it "raises an ArgumentError" do
|
|
26
|
+
expect{described_class.new}.to raise_error ArgumentError
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require "race_partner_registrations"
|
metadata
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: race_partner_registrations
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Sean Devine
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exec
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2014-08-13 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: bundler
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.6'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.6'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rake
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '10.0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '10.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rspec
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 3.0.0
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 3.0.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: 2.7.3
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 2.7.3
|
|
69
|
+
description: Download registration list from a Race Partner event.
|
|
70
|
+
email:
|
|
71
|
+
- barelyknown@icloud.com
|
|
72
|
+
executables: []
|
|
73
|
+
extensions: []
|
|
74
|
+
extra_rdoc_files: []
|
|
75
|
+
files:
|
|
76
|
+
- ".gitignore"
|
|
77
|
+
- ".rspec"
|
|
78
|
+
- Gemfile
|
|
79
|
+
- LICENSE.txt
|
|
80
|
+
- README.md
|
|
81
|
+
- Rakefile
|
|
82
|
+
- assets/images/entrance_list.jpg
|
|
83
|
+
- exec/bundler
|
|
84
|
+
- exec/htmldiff
|
|
85
|
+
- exec/ldiff
|
|
86
|
+
- exec/nokogiri
|
|
87
|
+
- exec/rake
|
|
88
|
+
- exec/rspec
|
|
89
|
+
- lib/race_partner_registrations.rb
|
|
90
|
+
- lib/race_partner_registrations/event.rb
|
|
91
|
+
- lib/race_partner_registrations/registration.rb
|
|
92
|
+
- lib/race_partner_registrations/version.rb
|
|
93
|
+
- race_partner_registrations.gemspec
|
|
94
|
+
- spec/lib/race_partner_registrations/event_spec.rb
|
|
95
|
+
- spec/lib/race_partner_registrations/registration_spec.rb
|
|
96
|
+
- spec/spec_helper.rb
|
|
97
|
+
homepage: ''
|
|
98
|
+
licenses:
|
|
99
|
+
- MIT
|
|
100
|
+
metadata: {}
|
|
101
|
+
post_install_message:
|
|
102
|
+
rdoc_options: []
|
|
103
|
+
require_paths:
|
|
104
|
+
- lib
|
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
|
+
requirements:
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: '0'
|
|
115
|
+
requirements: []
|
|
116
|
+
rubyforge_project:
|
|
117
|
+
rubygems_version: 2.2.2
|
|
118
|
+
signing_key:
|
|
119
|
+
specification_version: 4
|
|
120
|
+
summary: Download registration list from a Race Partner event.
|
|
121
|
+
test_files:
|
|
122
|
+
- spec/lib/race_partner_registrations/event_spec.rb
|
|
123
|
+
- spec/lib/race_partner_registrations/registration_spec.rb
|
|
124
|
+
- spec/spec_helper.rb
|
|
125
|
+
has_rdoc:
|