ics_validator 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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a88b3177f1e873582e2915f8d5968e88feeb8d56
4
+ data.tar.gz: f7e3dfc6e7fbbc8f66fcbb77a32b1170016616ca
5
+ SHA512:
6
+ metadata.gz: 877069f5842e7f18a51844cb4a2edc6480e33ffe80d467bfb8a4db11f5c1be99bba25bf173ae09ac348de544534eaf6d05f6ed28ba1c8f70f9f64f65ba39f524
7
+ data.tar.gz: 7c5b668ee3cdf8bdcb75865d84f42bfac9db43ac96f40965d3a306af5bd13f4383e95056e20d3ef344457f5fca1fe2d862346b16c5bd9f4b7fb72bedde4e3d63
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in ics_validator.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Matt Gillooly
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,29 @@
1
+ # IcsValidator
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'ics_validator'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install ics_validator
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+ require "cane/rake_task"
4
+
5
+ RSpec::Core::RakeTask.new do |t|
6
+ t.pattern = 'spec/**/*_spec.rb'
7
+ end
8
+
9
+ Cane::RakeTask.new(:quality) do |cane|
10
+ cane.canefile = '.cane'
11
+ end
12
+
13
+ task :default => [:spec, :quality]
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ics_validator/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ics_validator"
8
+ spec.version = IcsValidator::VERSION
9
+ spec.authors = ["Matt Gillooly"]
10
+ spec.email = ["matt@swipely.com"]
11
+ spec.description = %q{Validate iCalendar content}
12
+ spec.summary = %q{Validate iCalendar content}
13
+ spec.homepage = "http://github.com/mattgillooly/ics_validator"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "nokogiri"
22
+ spec.add_dependency "rest-client"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "cane"
28
+ spec.add_development_dependency "vcr"
29
+ spec.add_development_dependency "webmock"
30
+ end
@@ -0,0 +1,40 @@
1
+ require 'nokogiri'
2
+ require 'rest-client'
3
+
4
+ module IcsValidator
5
+
6
+ # Validate an iCalendar feed by URL.
7
+ #
8
+ class FeedValidator
9
+
10
+ def initialize(feed_url)
11
+ @feed_url = feed_url
12
+ end
13
+
14
+ def valid?
15
+ if r = validation_results
16
+ results = r.children.map{|c| c.attr(:result)}
17
+ results.compact.uniq == ['pass']
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def validator_url
24
+ "http://icalvalid.cloudapp.net/?uri=#{@feed_url}"
25
+ end
26
+
27
+ def validator_response
28
+ RestClient.get(validator_url)
29
+ end
30
+
31
+ def validator_response_doc
32
+ Nokogiri::XML(validator_response)
33
+ end
34
+
35
+ def validation_results
36
+ validator_response_doc.at('validationResults')
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ module IcsValidator
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,12 @@
1
+ require "ics_validator/version"
2
+ require "ics_validator/feed_validator"
3
+
4
+ # Use http://icalvalid.cloudapp.net/ to validate iCalendar content.
5
+ #
6
+ module IcsValidator
7
+
8
+ def self.valid_feed?(url)
9
+ FeedValidator.new(url).valid?
10
+ end
11
+
12
+ end
@@ -0,0 +1,256 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://icalvalid.cloudapp.net/?uri=http://elmcity.cloudapp.net/elmcity/ics?view=art
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - '*/*; q=0.5, application/xml'
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Cache-Control:
22
+ - private
23
+ Content-Type:
24
+ - text/xml; charset=utf-8
25
+ Server:
26
+ - Microsoft-IIS/7.0
27
+ X-Aspnet-Version:
28
+ - 4.0.30319
29
+ X-Powered-By:
30
+ - ASP.NET
31
+ Date:
32
+ - Wed, 01 Jan 2014 03:14:18 GMT
33
+ Content-Length:
34
+ - '9693'
35
+ body:
36
+ encoding: ASCII-8BIT
37
+ string: !binary |-
38
+ 77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjw/
39
+ eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9InJlc3VsdHMu
40
+ eHNsdCI/Pg0KPHJlc3VsdHMNCiAgICBsYW5ndWFnZT0iZW4iDQogICAgZGF0
41
+ ZXRpbWU9IjIwMTQtMDEtMDFUMDM6MTQ6MTYiDQogICAgcGVybWFsaW5rPSIv
42
+ P2lkPTYzNTI0MTQyODU2NDY1NDAwNyIgeG1sbnM9Imh0dHA6Ly9pY2FsdmFs
43
+ aWQud2lraWRvdC5jb20vdmFsaWRhdGlvbiI+DQogICAgPHVzaW5nDQogICAg
44
+ ICAgIG5hbWU9IkREYXkuaUNhbCINCiAgICAgICAgdXJsPSJodHRwOi8vd3d3
45
+ LmRkYXlzb2Z0d2FyZS5jb20vUGFnZXMvUHJvamVjdHMvRERheS5pQ2FsLyIN
46
+ CiAgICAgICAgdmVyc2lvbj0iMS4wLjEuMCIgLz4NCiAgICA8dXNpbmcNCiAg
47
+ ICAgICAgbmFtZT0iaWNhbHZhbGlkIg0KICAgICAgICB1cmw9Imh0dHA6Ly9p
48
+ Y2FsdmFsaWQuY2xvdWRhcHAubmV0Ig0KICAgICAgICB2ZXJzaW9uPSIxLjAu
49
+ MC4zIiAvPg0KICAgIDxjYWxlbmRhckxpbmVzDQogICAgICAgIHBhdGg9Imh0
50
+ dHA6Ly9lbG1jaXR5LmNsb3VkYXBwLm5ldC9lbG1jaXR5L2ljcz92aWV3PWFy
51
+ dCINCiAgICAgICAgYnl0ZUNvdW50PSIxOTYwIg0KICAgICAgICBsaW1pdD0i
52
+ NTAwIj4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjEiPkJFR0lO
53
+ OlZDQUxFTkRBUjwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAg
54
+ IG49IjIiPlZFUlNJT046Mi4wPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAg
55
+ ICAgICAgICAgbj0iMyI+UFJPRElEOi0vL2RkYXlzb2Z0d2FyZS5jb20vL05P
56
+ TlNHTUwgRERheS5pQ2FsIDEuMC8vRU48L2xpbmU+DQogICAgICAgIDxsaW5l
57
+ DQogICAgICAgICAgICBuPSI0Ij5CRUdJTjpWVElNRVpPTkU8L2xpbmU+DQog
58
+ ICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI1Ij5UWklEOkVhc3Rlcm4g
59
+ U3RhbmRhcmQgVGltZTwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAg
60
+ ICAgIG49IjYiPkJFR0lOOlNUQU5EQVJEPC9saW5lPg0KICAgICAgICA8bGlu
61
+ ZQ0KICAgICAgICAgICAgbj0iNyI+RFRTVEFSVDoyMDEzMTEwMlQwMjAwMDA8
62
+ L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI4Ij5SUlVM
63
+ RTpGUkVRPVlFQVJMWTtCWURBWT0xU1U7QllIT1VSPTI7QllNSU5VVEU9MDtC
64
+ WU1PTlRIPTExPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAg
65
+ bj0iOSI+VFpOQU1FOkVhc3Rlcm4gU3RhbmRhcmQgVGltZTwvbGluZT4NCiAg
66
+ ICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjEwIj5UWk9GRlNFVEZST006
67
+ LTA0MDA8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIx
68
+ MSI+VFpPRkZTRVRUTzotMDUwMDwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAg
69
+ ICAgICAgICAgIG49IjEyIj5FTkQ6U1RBTkRBUkQ8L2xpbmU+DQogICAgICAg
70
+ IDxsaW5lDQogICAgICAgICAgICBuPSIxMyI+QkVHSU46REFZTElHSFQ8L2xp
71
+ bmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIxNCI+RFRTVEFS
72
+ VDoyMDEzMDMwMVQwMjAwMDA8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAg
73
+ ICAgICAgICBuPSIxNSI+UlJVTEU6RlJFUT1ZRUFSTFk7QllEQVk9MlNVO0JZ
74
+ SE9VUj0yO0JZTUlOVVRFPTA7QllNT05USD0zPC9saW5lPg0KICAgICAgICA8
75
+ bGluZQ0KICAgICAgICAgICAgbj0iMTYiPlRaTkFNRTpFYXN0ZXJuIERheWxp
76
+ Z2h0IFRpbWU8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBu
77
+ PSIxNyI+VFpPRkZTRVRGUk9NOi0wNTAwPC9saW5lPg0KICAgICAgICA8bGlu
78
+ ZQ0KICAgICAgICAgICAgbj0iMTgiPlRaT0ZGU0VUVE86LTA0MDA8L2xpbmU+
79
+ DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIxOSI+RU5EOkRBWUxJ
80
+ R0hUPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iMjAi
81
+ PkVORDpWVElNRVpPTkU8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAg
82
+ ICAgICBuPSIyMSI+QkVHSU46VkVWRU5UPC9saW5lPg0KICAgICAgICA8bGlu
83
+ ZQ0KICAgICAgICAgICAgbj0iMjIiPkNBVEVHT1JJRVM6YXJ0PC9saW5lPg0K
84
+ ICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iMjMiPkNBVEVHT1JJRVM6
85
+ a3NjPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iMjQi
86
+ PkNBVEVHT1JJRVM6dW5pdmVyc2l0eTwvbGluZT4NCiAgICAgICAgPGxpbmUN
87
+ CiAgICAgICAgICAgIG49IjI1Ij5ERVNDUklQVElPTjoyMDEzw6LigqzigJwx
88
+ NCBSZWRmZXJuIENob3Jlb2dyYXBoZXItaW4tUmVzaWRlbmNlIFJlYmVjY2Eg
89
+ U3Rlbm4gaGFzIHBlPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAg
90
+ ICAgbj0iMjYiPiByZm9ybWVkIGFuZCB0b3VyZWQgdGhyb3VnaG91dCB0aGUg
91
+ d29ybGQgYXMgYSBwcmluY2lwYWwgZGFuY2VyIHdpdGggTW9taXggYTwvbGlu
92
+ ZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjI3Ij4gbmQgUGls
93
+ b2JvbHVzLiBTdGVubiBjcmVhdGVzIGRpc3RpbmN0aXZlIGRhbmNlIHBpZWNl
94
+ cyBhbmQgc29sbyB3b3JrcyB0aGF0IGM8L2xpbmU+DQogICAgICAgIDxsaW5l
95
+ DQogICAgICAgICAgICBuPSIyOCI+IGhhbGxlbmdlIHRoZSB1bmlxdWUgd2F5
96
+ cyB0aGF0IGxpdmUgbXVzaWMgYW5kIGRhbmNlXG5jb21tdW5pY2F0ZSBhbmQg
97
+ aW50ZXJhPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0i
98
+ MjkiPiBjdC48L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBu
99
+ PSIzMCI+RFRFTkQ7VFpJRD1FYXN0ZXJuIFN0YW5kYXJkIFRpbWU6MjAxNDAx
100
+ MjdUMjEzMDAwPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAg
101
+ bj0iMzEiPkRUU1RBTVA6MjAxNDAxMDFUMDMxNDE2WjwvbGluZT4NCiAgICAg
102
+ ICAgPGxpbmUNCiAgICAgICAgICAgIG49IjMyIj5EVFNUQVJUO1RaSUQ9RWFz
103
+ dGVybiBTdGFuZGFyZCBUaW1lOjIwMTQwMTI3VDE5MzAwMDwvbGluZT4NCiAg
104
+ ICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjMzIj5MT0NBVElPTjo8L2xp
105
+ bmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIzNCI+U0VRVUVO
106
+ Q0U6MDwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjM1
107
+ Ij5TVU1NQVJZOlJlYmVjY2EgU3Rlbm4gTW9kZXJuIERhbmNlPC9saW5lPg0K
108
+ ICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iMzYiPlVJRDo4ZTQwNWJm
109
+ Yi0yY2RkLTQ0MzMtOTE4Ni1kOGIwODg0NTY0NDM8L2xpbmU+DQogICAgICAg
110
+ IDxsaW5lDQogICAgICAgICAgICBuPSIzNyI+VVJMOmh0dHA6Ly93d3cua2Vl
111
+ bmUuZWR1L25ld3MvZXZlbnRzL2RldGFpbC8xMjMyLzwvbGluZT4NCiAgICAg
112
+ ICAgPGxpbmUNCiAgICAgICAgICAgIG49IjM4Ij5FTkQ6VkVWRU5UPC9saW5l
113
+ Pg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iMzkiPkJFR0lOOlZF
114
+ VkVOVDwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjQw
115
+ Ij5DQVRFR09SSUVTOmFydDwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAg
116
+ ICAgICAgIG49IjQxIj5DQVRFR09SSUVTOmtzYzwvbGluZT4NCiAgICAgICAg
117
+ PGxpbmUNCiAgICAgICAgICAgIG49IjQyIj5DQVRFR09SSUVTOnRoZWF0ZXI8
118
+ L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI0MyI+Q0FU
119
+ RUdPUklFUzp1bml2ZXJzaXR5PC9saW5lPg0KICAgICAgICA8bGluZQ0KICAg
120
+ ICAgICAgICAgbj0iNDQiPkRFU0NSSVBUSU9OOkluIHRoZWlyIHByZW1pZXJl
121
+ IEFtZXJpY2FuIHRvdXJcLCB0aGlzIGhpbGFyaW91cyBjaXJjdXNcbnRyb3Vw
122
+ ZTwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjQ1Ij4g
123
+ IGZlYXR1cmVzIGxvZy13YWxraW5nXCwgc3Bvb24tY2xhY2tpbmdcLCBoYXRj
124
+ aGV0LWp1Z2dsaW5nXCwgY2xvZy1kYW5jaW5nXCw8L2xpbmU+DQogICAgICAg
125
+ IDxsaW5lDQogICAgICAgICAgICBuPSI0NiI+ICBhbmQgZXZlbiBoaWppbmtz
126
+ IG9uIGFuIG91dGhvdXNlISBBIHNtb3JnYXNib3JkIG9mIGZhbWlseSBmdW4g
127
+ YmFzZWQgb24gdGhlPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAg
128
+ ICAgbj0iNDciPiAgbG9nZ2luZyB0cmFkaXRpb24gd2l0aCB0cm91cGVycyBw
129
+ ZXJmb3JtaW5nIGRhcmluZyBrbmlmZSB0cmlja3MgYW5kIGFjcm9iYTwvbGlu
130
+ ZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjQ4Ij4gdGljIGZl
131
+ YXRzIHRvIHRoZSB0b2UtdGFwcGluZyBzb3VuZHMgb2YgUXVlYmVjb2lzIGZv
132
+ bGsgbXVzaWMuPC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAg
133
+ bj0iNDkiPkRURU5EO1RaSUQ9RWFzdGVybiBTdGFuZGFyZCBUaW1lOjIwMTQw
134
+ MjAxVDE2MDAwMDwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAg
135
+ IG49IjUwIj5EVFNUQU1QOjIwMTQwMTAxVDAzMTQxNlo8L2xpbmU+DQogICAg
136
+ ICAgIDxsaW5lDQogICAgICAgICAgICBuPSI1MSI+RFRTVEFSVDtUWklEPUVh
137
+ c3Rlcm4gU3RhbmRhcmQgVGltZToyMDE0MDIwMVQxNDAwMDA8L2xpbmU+DQog
138
+ ICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI1MiI+TE9DQVRJT046PC9s
139
+ aW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iNTMiPlNFUVVF
140
+ TkNFOjA8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI1
141
+ NCI+U1VNTUFSWTpDaXJxdWUgQWxmb25zZSBpbiAiVGltYmVyISI8L2xpbmU+
142
+ DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI1NSI+VUlEOjUyOGMx
143
+ MzhlLWYwMGYtNDgxYi05N2JjLTc0N2FlMTdjMDI4MjwvbGluZT4NCiAgICAg
144
+ ICAgPGxpbmUNCiAgICAgICAgICAgIG49IjU2Ij5VUkw6aHR0cDovL3d3dy5r
145
+ ZWVuZS5lZHUvbmV3cy9ldmVudHMvZGV0YWlsLzEyMzMvPC9saW5lPg0KICAg
146
+ ICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iNTciPkVORDpWRVZFTlQ8L2xp
147
+ bmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI1OCI+RU5EOlZD
148
+ QUxFTkRBUjwvbGluZT4NCiAgICA8L2NhbGVuZGFyTGluZXM+DQogICAgPHZh
149
+ bGlkYXRpb25SZXN1bHRzDQogICAgICAgIHJ1bGVzZXQ9IlN0cmljdF8yXzAi
150
+ DQogICAgICAgIHJ1bGVzZXRTdHJpbmc9ImlDYWxlbmRhciAyLjAgU3RyaWN0
151
+ Ig0KICAgICAgICBydWxlc2V0RGVzY3JpcHRpb249IiYjeEQ7JiN4QTsgICAg
152
+ ICAgIFZhbGlkYXRlcyBpQ2FsZW5kYXJzIGFnYWluc3QgdGhlIElFVEYgc3Rh
153
+ bmRhcmRzIGluIGEgc3RyaWN0IGZhc2hpb24uICBBbnkgdmFyaWF0aW9ucyBm
154
+ cm9tIHRoZSBzdGFuZGFyZCYjeEQ7JiN4QTsgICAgICAgIHdpbGwgYmUgcmVw
155
+ b3J0ZWQuJiN4RDsmI3hBOyAgICAiDQogICAgICAgIHNjb3JlPSIxMDAiPg0K
156
+ ICAgICAgICA8Y2FsZW5kYXJJbmZvcz4NCiAgICAgICAgICAgIDxjYWxlbmRh
157
+ ckluZm8NCiAgICAgICAgICAgICAgICB0aW1lWm9uZUNvdW50PSIxIg0KICAg
158
+ ICAgICAgICAgICAgIGV2ZW50Q291bnQ9IjIiDQogICAgICAgICAgICAgICAg
159
+ dG9kb0NvdW50PSIwIg0KICAgICAgICAgICAgICAgIGpvdXJuYWxDb3VudD0i
160
+ MCINCiAgICAgICAgICAgICAgICBmcmVlQnVzeUNvdW50PSIwIg0KICAgICAg
161
+ ICAgICAgICAgIGNhbGVuZGFyVmVyc2lvbj0iMi4wIg0KICAgICAgICAgICAg
162
+ ICAgIHByb2RJRD0iLS8vZGRheXNvZnR3YXJlLmNvbS8vTk9OU0dNTCBERGF5
163
+ LmlDYWwgMS4wLy9FTiIgLz4NCiAgICAgICAgPC9jYWxlbmRhckluZm9zPg0K
164
+ ICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0i
165
+ ZW1wdHlMaW5lIg0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAg
166
+ ICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iY3Js
167
+ ZlBhaXJzIg0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAg
168
+ ICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0ibGluZUZv
169
+ bGRpbmciDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAg
170
+ IDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJ2ZXJzaW9u
171
+ Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFs
172
+ aWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0icHJvZElEIg0KICAg
173
+ ICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlv
174
+ blJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iY2FsU2NhbGUiDQogICAgICAg
175
+ ICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVz
176
+ dWx0DQogICAgICAgICAgICBydWxlPSJtZXRob2QiDQogICAgICAgICAgICBy
177
+ ZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQog
178
+ ICAgICAgICAgICBydWxlPSJjb21wb25lbnQiDQogICAgICAgICAgICByZXN1
179
+ bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAg
180
+ ICAgICAgICBydWxlPSIiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+
181
+ DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxl
182
+ PSJldmVudEF0dGFjaFByb3BlcnR5Ig0KICAgICAgICAgICAgcmVzdWx0PSJw
183
+ YXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAg
184
+ ICAgcnVsZT0iZXZlbnRBdHRlbmRlZVByb3BlcnR5Ig0KICAgICAgICAgICAg
185
+ cmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0K
186
+ ICAgICAgICAgICAgcnVsZT0iZXZlbnRDYXRlZ29yaWVzUHJvcGVydHkiDQog
187
+ ICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0
188
+ aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudENsYXNzUHJvcGVy
189
+ dHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2
190
+ YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudENvbW1l
191
+ bnRQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAg
192
+ ICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2
193
+ ZW50Q29udGFjdFByb3BlcnR5Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNz
194
+ IiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAg
195
+ cnVsZT0iZXZlbnRDcmVhdGVkUHJvcGVydHkiDQogICAgICAgICAgICByZXN1
196
+ bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAg
197
+ ICAgICAgICBydWxlPSJldmVudERlc2NyaXB0aW9uUHJvcGVydHkiDQogICAg
198
+ ICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9u
199
+ UmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudERURW5kRHVyYXRpb25D
200
+ b25mbGljdCINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAg
201
+ ICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50
202
+ RFRFbmRQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4N
203
+ CiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9
204
+ ImV2ZW50RFRTdGFydFByb3BlcnR5Ig0KICAgICAgICAgICAgcmVzdWx0PSJw
205
+ YXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAg
206
+ ICAgcnVsZT0iZXZlbnREVFN0YW1wUHJvcGVydHkiDQogICAgICAgICAgICBy
207
+ ZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQog
208
+ ICAgICAgICAgICBydWxlPSJldmVudER1cmF0aW9uUHJvcGVydHkiDQogICAg
209
+ ICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9u
210
+ UmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudEV4RGF0ZVByb3BlcnR5
211
+ Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFs
212
+ aWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRFeFJ1bGVQ
213
+ cm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAg
214
+ ICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50
215
+ R2VvUHJvcGVydHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQog
216
+ ICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJl
217
+ dmVudExhc3RNb2RQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFz
218
+ cyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAg
219
+ IHJ1bGU9ImV2ZW50TG9jYXRpb25Qcm9wZXJ0eSINCiAgICAgICAgICAgIHJl
220
+ c3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAg
221
+ ICAgICAgICAgIHJ1bGU9ImV2ZW50T3JnYW5pemVyUHJvcGVydHkiDQogICAg
222
+ ICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9u
223
+ UmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudFByaW9yaXR5UHJvcGVy
224
+ dHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2
225
+ YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudFJEYXRl
226
+ UHJvcGVydHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAg
227
+ ICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVu
228
+ dFJlY3VySURQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIg
229
+ Lz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1
230
+ bGU9ImV2ZW50UmVsYXRlZFByb3BlcnR5Ig0KICAgICAgICAgICAgcmVzdWx0
231
+ PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAg
232
+ ICAgICAgcnVsZT0iZXZlbnRSZXNvdXJjZXNQcm9wZXJ0eSINCiAgICAgICAg
233
+ ICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1
234
+ bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50UlN0YXR1c1Byb3BlcnR5Ig0K
235
+ ICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRh
236
+ dGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRSUnVsZVByb3Bl
237
+ cnR5Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8
238
+ dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRTZXFQ
239
+ cm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAg
240
+ ICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50
241
+ U3RhdHVzUHJvcGVydHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+
242
+ DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxl
243
+ PSJldmVudFN1bW1hcnlQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0i
244
+ cGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAg
245
+ ICAgIHJ1bGU9ImV2ZW50VHJhbnNwUHJvcGVydHkiDQogICAgICAgICAgICBy
246
+ ZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQog
247
+ ICAgICAgICAgICBydWxlPSJldmVudFVpZFByb3BlcnR5Ig0KICAgICAgICAg
248
+ ICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3Vs
249
+ dA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRVcmxQcm9wZXJ0eSINCiAgICAg
250
+ ICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25S
251
+ ZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50WFByb3BlcnR5Ig0KICAg
252
+ ICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgIDwvdmFsaWRhdGlvblJl
253
+ c3VsdHM+DQo8L3Jlc3VsdHM+
254
+ http_version:
255
+ recorded_at: Wed, 01 Jan 2014 03:14:18 GMT
256
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,247 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://icalvalid.cloudapp.net/?uri=http://example.com/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - '*/*; q=0.5, application/xml'
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Cache-Control:
22
+ - private
23
+ Content-Type:
24
+ - text/xml; charset=utf-8
25
+ Server:
26
+ - Microsoft-IIS/7.0
27
+ X-Aspnet-Version:
28
+ - 4.0.30319
29
+ X-Powered-By:
30
+ - ASP.NET
31
+ Date:
32
+ - Wed, 01 Jan 2014 03:14:21 GMT
33
+ Content-Length:
34
+ - '9314'
35
+ body:
36
+ encoding: ASCII-8BIT
37
+ string: !binary |-
38
+ 77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjw/
39
+ eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9InJlc3VsdHMu
40
+ eHNsdCI/Pg0KPHJlc3VsdHMNCiAgICBsYW5ndWFnZT0iZW4iDQogICAgZGF0
41
+ ZXRpbWU9IjIwMTQtMDEtMDFUMDM6MTQ6MjAiDQogICAgcGVybWFsaW5rPSIv
42
+ P2lkPTYzNTI0MTQyODU5NjUyNjc2MyIgeG1sbnM9Imh0dHA6Ly9pY2FsdmFs
43
+ aWQud2lraWRvdC5jb20vdmFsaWRhdGlvbiI+DQogICAgPHVzaW5nDQogICAg
44
+ ICAgIG5hbWU9IkREYXkuaUNhbCINCiAgICAgICAgdXJsPSJodHRwOi8vd3d3
45
+ LmRkYXlzb2Z0d2FyZS5jb20vUGFnZXMvUHJvamVjdHMvRERheS5pQ2FsLyIN
46
+ CiAgICAgICAgdmVyc2lvbj0iMS4wLjEuMCIgLz4NCiAgICA8dXNpbmcNCiAg
47
+ ICAgICAgbmFtZT0iaWNhbHZhbGlkIg0KICAgICAgICB1cmw9Imh0dHA6Ly9p
48
+ Y2FsdmFsaWQuY2xvdWRhcHAubmV0Ig0KICAgICAgICB2ZXJzaW9uPSIxLjAu
49
+ MC4zIiAvPg0KICAgIDxjYWxlbmRhckxpbmVzDQogICAgICAgIHBhdGg9Imh0
50
+ dHA6Ly9leGFtcGxlLmNvbS8iDQogICAgICAgIGJ5dGVDb3VudD0iMTI3MCIN
51
+ CiAgICAgICAgbGltaXQ9IjUwMCI+DQogICAgICAgIDxsaW5lDQogICAgICAg
52
+ ICAgICBuPSIxIj4mbHQ7IWRvY3R5cGUgaHRtbCZndDs8L2xpbmU+DQogICAg
53
+ ICAgIDxsaW5lDQogICAgICAgICAgICBuPSIyIj4mbHQ7aHRtbCZndDs8L2xp
54
+ bmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIzIj4mbHQ7aGVh
55
+ ZCZndDs8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI0
56
+ Ij4gICAgJmx0O3RpdGxlJmd0O0V4YW1wbGUgRG9tYWluJmx0Oy90aXRsZSZn
57
+ dDs8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI1Ij48
58
+ L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI2Ij4gICAg
59
+ Jmx0O21ldGEgY2hhcnNldD0idXRmLTgiIC8mZ3Q7PC9saW5lPg0KICAgICAg
60
+ ICA8bGluZQ0KICAgICAgICAgICAgbj0iNyI+ICAgICZsdDttZXRhIGh0dHAt
61
+ ZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy
62
+ c2V0PXV0Zi04IiAvJmd0OzwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAg
63
+ ICAgICAgIG49IjgiPiAgICAmbHQ7bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
64
+ dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiIC8m
65
+ Z3Q7PC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iOSI+
66
+ ICAgICZsdDtzdHlsZSB0eXBlPSJ0ZXh0L2NzcyImZ3Q7PC9saW5lPg0KICAg
67
+ ICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iMTAiPiAgICBib2R5IHs8L2xp
68
+ bmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIxMSI+ICAgICAg
69
+ ICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYyOzwvbGluZT4NCiAgICAgICAg
70
+ PGxpbmUNCiAgICAgICAgICAgIG49IjEyIj4gICAgICAgIG1hcmdpbjogMDs8
71
+ L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIxMyI+ICAg
72
+ ICAgICBwYWRkaW5nOiAwOzwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAg
73
+ ICAgICAgIG49IjE0Ij4gICAgICAgIGZvbnQtZmFtaWx5OiAiT3BlbiBTYW5z
74
+ IiwgIkhlbHZldGljYSBOZXVlIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1z
75
+ ZXJpZjs8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIx
76
+ NSI+ICAgICAgICA8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAg
77
+ ICBuPSIxNiI+ICAgIH08L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAg
78
+ ICAgICBuPSIxNyI+ICAgIGRpdiB7PC9saW5lPg0KICAgICAgICA8bGluZQ0K
79
+ ICAgICAgICAgICAgbj0iMTgiPiAgICAgICAgd2lkdGg6IDYwMHB4OzwvbGlu
80
+ ZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjE5Ij4gICAgICAg
81
+ IG1hcmdpbjogNWVtIGF1dG87PC9saW5lPg0KICAgICAgICA8bGluZQ0KICAg
82
+ ICAgICAgICAgbj0iMjAiPiAgICAgICAgcGFkZGluZzogNTBweDs8L2xpbmU+
83
+ DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIyMSI+ICAgICAgICBi
84
+ YWNrZ3JvdW5kLWNvbG9yOiAjZmZmOzwvbGluZT4NCiAgICAgICAgPGxpbmUN
85
+ CiAgICAgICAgICAgIG49IjIyIj4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFl
86
+ bTs8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIyMyI+
87
+ ICAgIH08L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIy
88
+ NCI+ICAgIGE6bGluaywgYTp2aXNpdGVkIHs8L2xpbmU+DQogICAgICAgIDxs
89
+ aW5lDQogICAgICAgICAgICBuPSIyNSI+ICAgICAgICBjb2xvcjogIzM4NDg4
90
+ Zjs8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIyNiI+
91
+ ICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7PC9saW5lPg0KICAgICAg
92
+ ICA8bGluZQ0KICAgICAgICAgICAgbj0iMjciPiAgICB9PC9saW5lPg0KICAg
93
+ ICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iMjgiPiAgICBAbWVkaWEgKG1h
94
+ eC13aWR0aDogNzAwcHgpIHs8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAg
95
+ ICAgICAgICBuPSIyOSI+ICAgICAgICBib2R5IHs8L2xpbmU+DQogICAgICAg
96
+ IDxsaW5lDQogICAgICAgICAgICBuPSIzMCI+ICAgICAgICAgICAgYmFja2dy
97
+ b3VuZC1jb2xvcjogI2ZmZjs8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAg
98
+ ICAgICAgICBuPSIzMSI+ICAgICAgICB9PC9saW5lPg0KICAgICAgICA8bGlu
99
+ ZQ0KICAgICAgICAgICAgbj0iMzIiPiAgICAgICAgZGl2IHs8L2xpbmU+DQog
100
+ ICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSIzMyI+ICAgICAgICAgICAg
101
+ d2lkdGg6IGF1dG87PC9saW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAg
102
+ ICAgbj0iMzQiPiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOzwvbGluZT4N
103
+ CiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjM1Ij4gICAgICAgICAg
104
+ ICBib3JkZXItcmFkaXVzOiAwOzwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAg
105
+ ICAgICAgICAgIG49IjM2Ij4gICAgICAgICAgICBwYWRkaW5nOiAxZW07PC9s
106
+ aW5lPg0KICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iMzciPiAgICAg
107
+ ICAgfTwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjM4
108
+ Ij4gICAgfTwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49
109
+ IjM5Ij4gICAgJmx0Oy9zdHlsZSZndDsgICAgPC9saW5lPg0KICAgICAgICA8
110
+ bGluZQ0KICAgICAgICAgICAgbj0iNDAiPiZsdDsvaGVhZCZndDs8L2xpbmU+
111
+ DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI0MSI+PC9saW5lPg0K
112
+ ICAgICAgICA8bGluZQ0KICAgICAgICAgICAgbj0iNDIiPiZsdDtib2R5Jmd0
113
+ OzwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjQzIj4m
114
+ bHQ7ZGl2Jmd0OzwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAg
115
+ IG49IjQ0Ij4gICAgJmx0O2gxJmd0O0V4YW1wbGUgRG9tYWluJmx0Oy9oMSZn
116
+ dDs8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAgICAgICAgICBuPSI0NSI+
117
+ ICAgICZsdDtwJmd0O1RoaXMgZG9tYWluIGlzIGVzdGFibGlzaGVkIHRvIGJl
118
+ IHVzZWQgZm9yIGlsbHVzdHJhdGl2ZSBleGFtcGxlcyBpbiBkb2N1bWVudHMu
119
+ IFlvdSBtYXkgdXNlIHRoaXM8L2xpbmU+DQogICAgICAgIDxsaW5lDQogICAg
120
+ ICAgICAgICBuPSI0NiI+ICAgIGRvbWFpbiBpbiBleGFtcGxlcyB3aXRob3V0
121
+ IHByaW9yIGNvb3JkaW5hdGlvbiBvciBhc2tpbmcgZm9yIHBlcm1pc3Npb24u
122
+ Jmx0Oy9wJmd0OzwvbGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAg
123
+ IG49IjQ3Ij4gICAgJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0iaHR0cDovL3d3dy5p
124
+ YW5hLm9yZy9kb21haW5zL2V4YW1wbGUiJmd0O01vcmUgaW5mb3JtYXRpb24u
125
+ Li4mbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OzwvbGluZT4NCiAgICAgICAgPGxpbmUN
126
+ CiAgICAgICAgICAgIG49IjQ4Ij4mbHQ7L2RpdiZndDs8L2xpbmU+DQogICAg
127
+ ICAgIDxsaW5lDQogICAgICAgICAgICBuPSI0OSI+Jmx0Oy9ib2R5Jmd0Ozwv
128
+ bGluZT4NCiAgICAgICAgPGxpbmUNCiAgICAgICAgICAgIG49IjUwIj4mbHQ7
129
+ L2h0bWwmZ3Q7PC9saW5lPg0KICAgIDwvY2FsZW5kYXJMaW5lcz4NCiAgICA8
130
+ dmFsaWRhdGlvblJlc3VsdHMNCiAgICAgICAgcnVsZXNldD0iU3RyaWN0XzJf
131
+ MCINCiAgICAgICAgcnVsZXNldFN0cmluZz0iaUNhbGVuZGFyIDIuMCBTdHJp
132
+ Y3QiDQogICAgICAgIHJ1bGVzZXREZXNjcmlwdGlvbj0iJiN4RDsmI3hBOyAg
133
+ ICAgICAgVmFsaWRhdGVzIGlDYWxlbmRhcnMgYWdhaW5zdCB0aGUgSUVURiBz
134
+ dGFuZGFyZHMgaW4gYSBzdHJpY3QgZmFzaGlvbi4gIEFueSB2YXJpYXRpb25z
135
+ IGZyb20gdGhlIHN0YW5kYXJkJiN4RDsmI3hBOyAgICAgICAgd2lsbCBiZSBy
136
+ ZXBvcnRlZC4mI3hEOyYjeEE7ICAgICINCiAgICAgICAgc2NvcmU9Ijk4Ij4N
137
+ CiAgICAgICAgPGNhbGVuZGFySW5mb3MgLz4NCiAgICAgICAgPHZhbGlkYXRp
138
+ b25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImVtcHR5TGluZSINCiAgICAg
139
+ ICAgICAgIHJlc3VsdD0iZmFpbCI+DQogICAgICAgICAgICA8ZGV0YWlscz4N
140
+ CiAgICAgICAgICAgICAgICA8aW5mbw0KICAgICAgICAgICAgICAgICAgICBu
141
+ YW1lPSJlbXB0eUxpbmVFcnJvciINCiAgICAgICAgICAgICAgICAgICAgdHlw
142
+ ZT0id2FybmluZyINCiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0iRW1w
143
+ dHkgbGluZXMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggYWxsIGFwcGxpY2F0
144
+ aW9ucy4iDQogICAgICAgICAgICAgICAgICAgIGxpbmU9IjUiPg0KICAgICAg
145
+ ICAgICAgICAgICAgICA8cmVzb2x1dGlvbj5SZW1vdmUgZW1wdHkgbGluZXMg
146
+ ZnJvbSB0aGUgaUNhbGVuZGFyLjwvcmVzb2x1dGlvbj4NCiAgICAgICAgICAg
147
+ ICAgICA8L2luZm8+DQogICAgICAgICAgICA8L2RldGFpbHM+DQogICAgICAg
148
+ IDwvdmFsaWRhdGlvblJlc3VsdD4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1
149
+ bHQNCiAgICAgICAgICAgIHJ1bGU9ImNybGZQYWlycyINCiAgICAgICAgICAg
150
+ IHJlc3VsdD0iZmFpbCI+DQogICAgICAgICAgICA8ZGV0YWlscz4NCiAgICAg
151
+ ICAgICAgICAgICA8aW5mbw0KICAgICAgICAgICAgICAgICAgICBuYW1lPSJj
152
+ cmxmUGFpckVycm9yIg0KICAgICAgICAgICAgICAgICAgICB0eXBlPSJ3YXJu
153
+ aW5nIg0KICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJMaW5lIGVuZGlu
154
+ Z3MgbXVzdCBiZSBhIENhcnJpYWdlIFJldHVybi9MaW5lIEZlZWQgKENSTEYp
155
+ IHBhaXIuIj4NCiAgICAgICAgICAgICAgICAgICAgPHJlc29sdXRpb24+RW5z
156
+ dXJlIGFsbCBsaW5lIGVuZGluZ3MgYXJlIENSTEYgcGFpcnMgKFVTLUFTQ0lJ
157
+ IGRlY2ltYWwgMTMsIGZvbGxvd2VkIGJ5IFVTLUFTQ0lJIGRlY2ltYWwgMTAp
158
+ LjwvcmVzb2x1dGlvbj4NCiAgICAgICAgICAgICAgICA8L2luZm8+DQogICAg
159
+ ICAgICAgICA8L2RldGFpbHM+DQogICAgICAgIDwvdmFsaWRhdGlvblJlc3Vs
160
+ dD4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1
161
+ bGU9ImxpbmVGb2xkaW5nIg0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAv
162
+ Pg0KICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVs
163
+ ZT0idmVyc2lvbiINCiAgICAgICAgICAgIHJlc3VsdD0ibm9uZSIgLz4NCiAg
164
+ ICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9IiIN
165
+ CiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlk
166
+ YXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9IiINCiAgICAgICAgICAg
167
+ IHJlc3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQN
168
+ CiAgICAgICAgICAgIHJ1bGU9IiINCiAgICAgICAgICAgIHJlc3VsdD0icGFz
169
+ cyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAg
170
+ IHJ1bGU9IiINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAg
171
+ ICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9IiINCiAg
172
+ ICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRp
173
+ b25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50QXR0YWNoUHJvcGVy
174
+ dHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2
175
+ YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudEF0dGVu
176
+ ZGVlUHJvcGVydHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQog
177
+ ICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJl
178
+ dmVudENhdGVnb3JpZXNQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0i
179
+ cGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAg
180
+ ICAgIHJ1bGU9ImV2ZW50Q2xhc3NQcm9wZXJ0eSINCiAgICAgICAgICAgIHJl
181
+ c3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAg
182
+ ICAgICAgICAgIHJ1bGU9ImV2ZW50Q29tbWVudFByb3BlcnR5Ig0KICAgICAg
183
+ ICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJl
184
+ c3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRDb250YWN0UHJvcGVydHki
185
+ DQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxp
186
+ ZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudENyZWF0ZWRQ
187
+ cm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAg
188
+ ICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50
189
+ RGVzY3JpcHRpb25Qcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFz
190
+ cyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAg
191
+ IHJ1bGU9ImV2ZW50RFRFbmREdXJhdGlvbkNvbmZsaWN0Ig0KICAgICAgICAg
192
+ ICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3Vs
193
+ dA0KICAgICAgICAgICAgcnVsZT0iZXZlbnREVEVuZFByb3BlcnR5Ig0KICAg
194
+ ICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlv
195
+ blJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZlbnREVFN0YXJ0UHJvcGVy
196
+ dHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2
197
+ YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudERUU3Rh
198
+ bXBQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAg
199
+ ICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2
200
+ ZW50RHVyYXRpb25Qcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFz
201
+ cyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAg
202
+ IHJ1bGU9ImV2ZW50RXhEYXRlUHJvcGVydHkiDQogICAgICAgICAgICByZXN1
203
+ bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAg
204
+ ICAgICAgICBydWxlPSJldmVudEV4UnVsZVByb3BlcnR5Ig0KICAgICAgICAg
205
+ ICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3Vs
206
+ dA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRHZW9Qcm9wZXJ0eSINCiAgICAg
207
+ ICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25S
208
+ ZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50TGFzdE1vZFByb3BlcnR5
209
+ Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFs
210
+ aWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRMb2NhdGlv
211
+ blByb3BlcnR5Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAg
212
+ ICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZl
213
+ bnRPcmdhbml6ZXJQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFz
214
+ cyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAg
215
+ IHJ1bGU9ImV2ZW50UHJpb3JpdHlQcm9wZXJ0eSINCiAgICAgICAgICAgIHJl
216
+ c3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAg
217
+ ICAgICAgICAgIHJ1bGU9ImV2ZW50UkRhdGVQcm9wZXJ0eSINCiAgICAgICAg
218
+ ICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRpb25SZXN1
219
+ bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50UmVjdXJJRFByb3BlcnR5Ig0K
220
+ ICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRh
221
+ dGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRSZWxhdGVkUHJv
222
+ cGVydHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+DQogICAgICAg
223
+ IDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxlPSJldmVudFJl
224
+ c291cmNlc1Byb3BlcnR5Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAv
225
+ Pg0KICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVs
226
+ ZT0iZXZlbnRSU3RhdHVzUHJvcGVydHkiDQogICAgICAgICAgICByZXN1bHQ9
227
+ InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAg
228
+ ICAgICBydWxlPSJldmVudFJSdWxlUHJvcGVydHkiDQogICAgICAgICAgICBy
229
+ ZXN1bHQ9InBhc3MiIC8+DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQog
230
+ ICAgICAgICAgICBydWxlPSJldmVudFNlcVByb3BlcnR5Ig0KICAgICAgICAg
231
+ ICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3Vs
232
+ dA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRTdGF0dXNQcm9wZXJ0eSINCiAg
233
+ ICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAgICAgICAgPHZhbGlkYXRp
234
+ b25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2ZW50U3VtbWFyeVByb3Bl
235
+ cnR5Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNzIiAvPg0KICAgICAgICA8
236
+ dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAgcnVsZT0iZXZlbnRUcmFu
237
+ c3BQcm9wZXJ0eSINCiAgICAgICAgICAgIHJlc3VsdD0icGFzcyIgLz4NCiAg
238
+ ICAgICAgPHZhbGlkYXRpb25SZXN1bHQNCiAgICAgICAgICAgIHJ1bGU9ImV2
239
+ ZW50VWlkUHJvcGVydHkiDQogICAgICAgICAgICByZXN1bHQ9InBhc3MiIC8+
240
+ DQogICAgICAgIDx2YWxpZGF0aW9uUmVzdWx0DQogICAgICAgICAgICBydWxl
241
+ PSJldmVudFVybFByb3BlcnR5Ig0KICAgICAgICAgICAgcmVzdWx0PSJwYXNz
242
+ IiAvPg0KICAgICAgICA8dmFsaWRhdGlvblJlc3VsdA0KICAgICAgICAgICAg
243
+ cnVsZT0iZXZlbnRYUHJvcGVydHkiDQogICAgICAgICAgICByZXN1bHQ9InBh
244
+ c3MiIC8+DQogICAgPC92YWxpZGF0aW9uUmVzdWx0cz4NCjwvcmVzdWx0cz4=
245
+ http_version:
246
+ recorded_at: Wed, 01 Jan 2014 03:14:21 GMT
247
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe IcsValidator::FeedValidator, :vcr do
4
+
5
+ context "given a valid ICS feed" do
6
+ let(:valid_ics_feed_url) {
7
+ "http://elmcity.cloudapp.net/elmcity/ics?view=art"
8
+ }
9
+
10
+ subject { described_class.new(valid_ics_feed_url) }
11
+
12
+ describe "#valid?" do
13
+ it "returns true" do
14
+ subject.should be_valid
15
+ end
16
+ end
17
+ end
18
+
19
+ context "given an invalid ICS feed" do
20
+ let(:invalid_ics_feed_url) {
21
+ "http://example.com/"
22
+ }
23
+
24
+ subject { described_class.new(invalid_ics_feed_url) }
25
+
26
+ describe "#valid?" do
27
+ it "returns false" do
28
+ subject.should_not be_valid
29
+ end
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,22 @@
1
+ require 'ics_validator'
2
+ require 'vcr'
3
+
4
+ VCR.configure do |c|
5
+ c.cassette_library_dir = 'spec/cassettes'
6
+ c.hook_into :webmock
7
+ c.configure_rspec_metadata!
8
+ end
9
+
10
+ RSpec.configure do |c|
11
+ # so we can use :vcr rather than :vcr => true;
12
+ # in RSpec 3 this will no longer be necessary.
13
+ c.treat_symbols_as_metadata_keys_with_true_values = true
14
+ end
15
+
16
+ RSpec.configure do |config|
17
+ # Run specs in random order to surface order dependencies. If you find an
18
+ # order dependency and want to debug it, you can fix the order by providing
19
+ # the seed, which is printed after each run.
20
+ # --seed 1234
21
+ config.order = "random"
22
+ end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ics_validator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Matt Gillooly
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-01-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rest-client
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: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
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: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: cane
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: vcr
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
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: Validate iCalendar content
126
+ email:
127
+ - matt@swipely.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - .gitignore
133
+ - .rspec
134
+ - Gemfile
135
+ - LICENSE.txt
136
+ - README.md
137
+ - Rakefile
138
+ - ics_validator.gemspec
139
+ - lib/ics_validator.rb
140
+ - lib/ics_validator/feed_validator.rb
141
+ - lib/ics_validator/version.rb
142
+ - spec/cassettes/IcsValidator_FeedValidator/given_a_valid_ICS_feed/_valid_/returns_true.yml
143
+ - spec/cassettes/IcsValidator_FeedValidator/given_an_invalid_ICS_feed/_valid_/returns_false.yml
144
+ - spec/ics_validator/feed_validator_spec.rb
145
+ - spec/spec_helper.rb
146
+ homepage: http://github.com/mattgillooly/ics_validator
147
+ licenses:
148
+ - MIT
149
+ metadata: {}
150
+ post_install_message:
151
+ rdoc_options: []
152
+ require_paths:
153
+ - lib
154
+ required_ruby_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ requirements: []
165
+ rubyforge_project:
166
+ rubygems_version: 2.0.14
167
+ signing_key:
168
+ specification_version: 4
169
+ summary: Validate iCalendar content
170
+ test_files:
171
+ - spec/cassettes/IcsValidator_FeedValidator/given_a_valid_ICS_feed/_valid_/returns_true.yml
172
+ - spec/cassettes/IcsValidator_FeedValidator/given_an_invalid_ICS_feed/_valid_/returns_false.yml
173
+ - spec/ics_validator/feed_validator_spec.rb
174
+ - spec/spec_helper.rb