ics_validator 0.0.1

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