bukin 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. data/.travis.yml +0 -1
  2. data/Gemfile +2 -0
  3. data/README.md +3 -3
  4. data/bukin.gemspec +2 -2
  5. data/docs/process.md +24 -0
  6. data/lib/bukin.rb +54 -2
  7. data/lib/bukin/bukfile.rb +46 -48
  8. data/lib/bukin/bukget.rb +63 -0
  9. data/lib/bukin/bukkit_dl.rb +45 -0
  10. data/lib/bukin/cli.rb +109 -83
  11. data/lib/bukin/download.rb +16 -0
  12. data/lib/bukin/file_match.rb +33 -0
  13. data/lib/bukin/installer.rb +65 -68
  14. data/lib/bukin/jenkins.rb +47 -0
  15. data/lib/bukin/lockfile.rb +23 -21
  16. data/lib/bukin/resource.rb +17 -0
  17. data/lib/bukin/version.rb +1 -1
  18. data/spec/bukfile_spec.rb +0 -16
  19. data/spec/bukget_spec.rb +56 -0
  20. data/spec/bukkit_dl_spec.rb +50 -0
  21. data/spec/cassettes/Bukin_Bukget/chooses_the_version_with_a_jar_file_when_there_are_multiple_versions.yml +61 -0
  22. data/spec/cassettes/Bukin_Bukget/installs_a_specific_version_of_a_resource.yml +61 -0
  23. data/spec/cassettes/Bukin_Bukget/installs_the_latest_version_of_a_resource.yml +49 -0
  24. data/spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml +61 -0
  25. data/spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml +43 -0
  26. data/spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_version_that_doese_not_exist.yml +435 -0
  27. data/spec/cassettes/Bukin_BukkitDl/chooses_the_first_file_when_there_are_multiple_files.yml +59 -0
  28. data/spec/cassettes/Bukin_BukkitDl/installs_a_specific_version_of_a_resource.yml +59 -0
  29. data/spec/cassettes/Bukin_BukkitDl/installs_the_latest_version_of_a_resource.yml +59 -0
  30. data/spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml +59 -0
  31. data/spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml +128 -0
  32. data/spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_version_that_doese_not_exist.yml +128 -0
  33. data/spec/cassettes/Bukin_Jenkins/chooses_the_first_file_when_there_are_multiple_files.yml +50 -0
  34. data/spec/cassettes/Bukin_Jenkins/installs_a_specific_version_of_a_resource.yml +50 -0
  35. data/spec/cassettes/Bukin_Jenkins/installs_the_latest_version_of_a_resource.yml +49 -0
  36. data/spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml +50 -0
  37. data/spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml +59 -0
  38. data/spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_version_that_does_not_exist.yml +59 -0
  39. data/spec/file_match_spec.rb +39 -0
  40. data/spec/installer_spec.rb +0 -1
  41. data/spec/jenkins_spec.rb +61 -0
  42. data/spec/lockfile_spec.rb +8 -8
  43. data/spec/spec_helper.rb +10 -0
  44. metadata +57 -26
  45. data/lib/bukin/exceptions.rb +0 -5
  46. data/lib/bukin/friendly_errors.rb +0 -22
  47. data/lib/bukin/providers/bukget.rb +0 -54
  48. data/lib/bukin/providers/bukkit_dl.rb +0 -29
  49. data/lib/bukin/providers/jenkins.rb +0 -40
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://dl.bukkit.org/api/1.0/downloads/projects/craftbukkit/view/build-2912/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx/1.5.7
21
+ Date:
22
+ - Fri, 22 Nov 2013 22:28:30 GMT
23
+ Content-Type:
24
+ - application/json
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ X-Throttle:
30
+ - status=SUCCESS; next=37.24 sec
31
+ Expires:
32
+ - Fri, 22 Nov 2013 22:36:07 GMT
33
+ Vary:
34
+ - Authenticate, Accept, Cookie
35
+ Last-Modified:
36
+ - Fri, 22 Nov 2013 22:26:07 GMT
37
+ X-Ua-Compatible:
38
+ - IE=edge,chrome=1
39
+ Allow:
40
+ - GET, PUT, DELETE, HEAD, OPTIONS
41
+ Cache-Control:
42
+ - max-age=600
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ! '{"broken_reason": "", "build_number": 2912, "created": "2013-10-24
46
+ 05:06:12Z", "url": "/api/1.0/downloads/projects/craftbukkit/view/02381_1.6.4-R1.0/",
47
+ "is_broken": false, "html_url": "/downloads/craftbukkit/view/02381_1.6.4-R1.0/",
48
+ "project": {"name": "CraftBukkit", "github_project_url": "https://github.com/Bukkit/CraftBukkit",
49
+ "url": "/api/1.0/downloads/projects/craftbukkit/", "html_url": "/downloads/craftbukkit/",
50
+ "download_count": 18655411, "slug": "craftbukkit"}, "version": "1.6.4-R1.0",
51
+ "file": {"url": "/downloads/craftbukkit/get/02381_1.6.4-R1.0/craftbukkit.jar",
52
+ "checksum_md5": "087223b14860378d4437d1a4e2a299f3", "size": 15294671}, "commit":
53
+ {"ref": "0fd25c40a2337a67e3f2ceefb1860470470050b2", "html_url": ""}, "target_filename":
54
+ "craftbukkit.jar", "download_count": 90555, "channel": {"filename_format":
55
+ "%(project_slug)s.jar", "url": "/api/1.0/downloads/channels/rb/", "priority":
56
+ 4000, "name": "Recommended Build", "slug": "rb"}}'
57
+ http_version:
58
+ recorded_at: Fri, 22 Nov 2013 22:28:30 GMT
59
+ recorded_with: VCR 2.7.0
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://dl.bukkit.org/api/1.0/downloads/projects/craftbukkit/view/build-2912/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx/1.5.7
21
+ Date:
22
+ - Fri, 22 Nov 2013 22:26:07 GMT
23
+ Content-Type:
24
+ - application/json
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ X-Throttle:
30
+ - status=SUCCESS; next=37.24 sec
31
+ Expires:
32
+ - Fri, 22 Nov 2013 22:36:07 GMT
33
+ Vary:
34
+ - Authenticate, Accept, Cookie
35
+ Last-Modified:
36
+ - Fri, 22 Nov 2013 22:26:07 GMT
37
+ X-Ua-Compatible:
38
+ - IE=edge,chrome=1
39
+ Allow:
40
+ - GET, PUT, DELETE, HEAD, OPTIONS
41
+ Cache-Control:
42
+ - max-age=600
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ! '{"broken_reason": "", "build_number": 2912, "created": "2013-10-24
46
+ 05:06:12Z", "url": "/api/1.0/downloads/projects/craftbukkit/view/02381_1.6.4-R1.0/",
47
+ "is_broken": false, "html_url": "/downloads/craftbukkit/view/02381_1.6.4-R1.0/",
48
+ "project": {"name": "CraftBukkit", "github_project_url": "https://github.com/Bukkit/CraftBukkit",
49
+ "url": "/api/1.0/downloads/projects/craftbukkit/", "html_url": "/downloads/craftbukkit/",
50
+ "download_count": 18655411, "slug": "craftbukkit"}, "version": "1.6.4-R1.0",
51
+ "file": {"url": "/downloads/craftbukkit/get/02381_1.6.4-R1.0/craftbukkit.jar",
52
+ "checksum_md5": "087223b14860378d4437d1a4e2a299f3", "size": 15294671}, "commit":
53
+ {"ref": "0fd25c40a2337a67e3f2ceefb1860470470050b2", "html_url": ""}, "target_filename":
54
+ "craftbukkit.jar", "download_count": 90555, "channel": {"filename_format":
55
+ "%(project_slug)s.jar", "url": "/api/1.0/downloads/channels/rb/", "priority":
56
+ 4000, "name": "Recommended Build", "slug": "rb"}}'
57
+ http_version:
58
+ recorded_at: Fri, 22 Nov 2013 22:26:07 GMT
59
+ recorded_with: VCR 2.7.0
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://dl.bukkit.org/api/1.0/downloads/projects/craftbukkit/view/latest-rb/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx/1.5.7
21
+ Date:
22
+ - Fri, 22 Nov 2013 22:26:08 GMT
23
+ Content-Type:
24
+ - application/json
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ X-Throttle:
30
+ - status=SUCCESS; next=0.00 sec
31
+ Expires:
32
+ - Fri, 22 Nov 2013 22:30:02 GMT
33
+ Vary:
34
+ - Authenticate, Accept, Cookie
35
+ Last-Modified:
36
+ - Fri, 22 Nov 2013 22:20:02 GMT
37
+ X-Ua-Compatible:
38
+ - IE=edge,chrome=1
39
+ Allow:
40
+ - GET, PUT, DELETE, HEAD, OPTIONS
41
+ Cache-Control:
42
+ - max-age=600
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ! '{"broken_reason": "", "build_number": 2918, "created": "2013-10-30
46
+ 23:39:40Z", "url": "/api/1.0/downloads/projects/craftbukkit/view/02389_1.6.4-R2.0/",
47
+ "is_broken": false, "html_url": "/downloads/craftbukkit/view/02389_1.6.4-R2.0/",
48
+ "project": {"name": "CraftBukkit", "github_project_url": "https://github.com/Bukkit/CraftBukkit",
49
+ "url": "/api/1.0/downloads/projects/craftbukkit/", "html_url": "/downloads/craftbukkit/",
50
+ "download_count": 18655302, "slug": "craftbukkit"}, "version": "1.6.4-R2.0",
51
+ "file": {"url": "/downloads/craftbukkit/get/02389_1.6.4-R2.0/craftbukkit.jar",
52
+ "checksum_md5": "5c3d125265a806e842fe97625658fb1c", "size": 15295007}, "commit":
53
+ {"ref": "d3eb65c2f43a4a3e69587af480d584ef6b4bad8c", "html_url": ""}, "target_filename":
54
+ "craftbukkit.jar", "download_count": 244793, "channel": {"filename_format":
55
+ "%(project_slug)s.jar", "url": "/api/1.0/downloads/channels/rb/", "priority":
56
+ 4000, "name": "Recommended Build", "slug": "rb"}}'
57
+ http_version:
58
+ recorded_at: Fri, 22 Nov 2013 22:26:09 GMT
59
+ recorded_with: VCR 2.7.0
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://dl.bukkit.org/api/1.0/downloads/projects/craftbukkit/view/build-2912/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx/1.5.7
21
+ Date:
22
+ - Fri, 22 Nov 2013 22:26:08 GMT
23
+ Content-Type:
24
+ - application/json
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ X-Throttle:
30
+ - status=SUCCESS; next=37.24 sec
31
+ Expires:
32
+ - Fri, 22 Nov 2013 22:36:07 GMT
33
+ Vary:
34
+ - Authenticate, Accept, Cookie
35
+ Last-Modified:
36
+ - Fri, 22 Nov 2013 22:26:07 GMT
37
+ X-Ua-Compatible:
38
+ - IE=edge,chrome=1
39
+ Allow:
40
+ - GET, PUT, DELETE, HEAD, OPTIONS
41
+ Cache-Control:
42
+ - max-age=600
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ! '{"broken_reason": "", "build_number": 2912, "created": "2013-10-24
46
+ 05:06:12Z", "url": "/api/1.0/downloads/projects/craftbukkit/view/02381_1.6.4-R1.0/",
47
+ "is_broken": false, "html_url": "/downloads/craftbukkit/view/02381_1.6.4-R1.0/",
48
+ "project": {"name": "CraftBukkit", "github_project_url": "https://github.com/Bukkit/CraftBukkit",
49
+ "url": "/api/1.0/downloads/projects/craftbukkit/", "html_url": "/downloads/craftbukkit/",
50
+ "download_count": 18655411, "slug": "craftbukkit"}, "version": "1.6.4-R1.0",
51
+ "file": {"url": "/downloads/craftbukkit/get/02381_1.6.4-R1.0/craftbukkit.jar",
52
+ "checksum_md5": "087223b14860378d4437d1a4e2a299f3", "size": 15294671}, "commit":
53
+ {"ref": "0fd25c40a2337a67e3f2ceefb1860470470050b2", "html_url": ""}, "target_filename":
54
+ "craftbukkit.jar", "download_count": 90555, "channel": {"filename_format":
55
+ "%(project_slug)s.jar", "url": "/api/1.0/downloads/channels/rb/", "priority":
56
+ 4000, "name": "Recommended Build", "slug": "rb"}}'
57
+ http_version:
58
+ recorded_at: Fri, 22 Nov 2013 22:26:08 GMT
59
+ recorded_with: VCR 2.7.0
@@ -0,0 +1,128 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://dl.bukkit.org/api/1.0/downloads/projects/missing-name/view/latest-rb/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 404
17
+ message: NOT FOUND
18
+ headers:
19
+ Server:
20
+ - nginx/1.5.7
21
+ Date:
22
+ - Fri, 22 Nov 2013 22:26:07 GMT
23
+ Content-Type:
24
+ - text/html; charset=utf-8
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ Vary:
30
+ - Accept-Encoding
31
+ - Cookie
32
+ X-Ua-Compatible:
33
+ - IE=edge,chrome=1
34
+ body:
35
+ encoding: US-ASCII
36
+ string: ! "<!DOCTYPE html>\n\n\n<!--[if lt IE 7]> <html class=\"no-js ie6 oldie\"
37
+ lang=\"en\"> <![endif]-->\n<!--[if IE 7]> <html class=\"no-js ie7 oldie\"
38
+ lang=\"en\"> <![endif]-->\n<!--[if IE 8]> <html class=\"no-js ie8 oldie\"
39
+ lang=\"en\"> <![endif]-->\n<!--[if gt IE 8]><!-->\n<html class=\"no-js\" lang=\"en\">
40
+ <!--<![endif]-->\n <head>\n <meta charset=\"utf-8\">\n\n <title>404
41
+ Bukkit is Empty | Bukkit</title>\n <meta name=\"description\" content=\"Download
42
+ Bukkit and CraftBukkit straight from the official source!\">\n <meta
43
+ name=\"author\" content=\"The Bukkit Project\">\n\n <meta name=\"viewport\"
44
+ content=\"width=device-width,initial-scale=1\">\n\n \n <link
45
+ rel=\"stylesheet\" href=\"/static/CACHE/css/4b279872fb62.css\" type=\"text/css\"
46
+ />\n\n <link rel=\"shortcut icon\" href=\"http://forums.bukkit.org/favicon.ico\">\n
47
+ \ \n\n <script type=\"text/javascript\" src=\"/static/CACHE/js/a04a7c346fb3.js\"></script>\n
48
+ \ </head>\n\n <body>\n <div id=\"container\">\n <div
49
+ id=\"wrap\">\n <header>\n <div class=\"pageWidth
50
+ positionReset\">\n <a href=\"/\"><img src=\"/static/img/logo.png\"
51
+ width=\"400\" height=\"59\" alt=\"Bukkit logo - return to Download Bukkit
52
+ homepage\"></a>\n <ul id=\"mainTabs\">\n \n
53
+ \ <li class=\"selected\"><a href=\"/\">Home</a></li>\n
54
+ \ \n <li class=\"rightTab\"><a
55
+ href=\"http://bukkit.org\">Back to Bukkit</a></li>\n <li
56
+ class=\"rightTab\"><a href=\"http://forums.bukkit.org\">Forums</a></li>\n
57
+ \ </ul>\n <ul id=\"subTabs\"></ul>\n
58
+ \ <div id=\"searchBox\" class=\"rightTab\">\n <form
59
+ action=\"/downloads/search/\" method=\"GET\">\n <input
60
+ type=\"search\" name=\"q\" value=\"\" placeholder=\"Search...\" results=0>\n
61
+ \ </form>\n </div>\n </div>\n
62
+ \ </header>\n <div id=\"mainWrap\">\n <div
63
+ id=\"main\" role=\"main\">\n <div class=\"pageWidth
64
+ mainPad\">\n \n <div class=\"block oneCol\">\n
65
+ \ <div class=\"innerContent\">\n <h3>404 Bukkit is Empty</h3>\n
66
+ \ <blockquote>Unfortunately the Bukkit you were looking in is empty.
67
+ Please try another.</blockquote>\n <p>The URL you tried to access
68
+ does not exist.</p>\n <p>You can try:</p>\n <ul>\n
69
+ \ <li><a href=\"http://dl.bukkit.org/\">Returning to the
70
+ homepage</a></li>\n </ul>\n </div>\n </div>\n\n </div>\n
71
+ \ </div>\n </div>\n </div>\n <footer>\n
72
+ \ <div class=\"pageWidth\">\n \n <ul>\n
73
+ \ <li>Flexile theme by Erik Swan for XenForo, ported
74
+ for Bukkit. </li>\n <li>\n Are
75
+ you a developer? <a href=\"/about/\">Check out our API!</a>\n \n
76
+ \ </li>\n <li>&copy; 2013 Bukkit
77
+ Project | f8889b3a74dbb549e8d069d36f569ad5ed19ba6b\n</li>\n </ul>\n
78
+ \ </div>\n </footer>\n </div>\n <!--!
79
+ end of #container -->\n\n <!-- scripts -->\n <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js\"></script>\n
80
+ \ <script>window.jQuery || document.write('<script src=\"/static/js/libs/jquery-1.6.2.min.js\"><\\/script>')</script>\n
81
+ \ <script type=\"text/javascript\" src=\"/static/CACHE/js/ca7fd643cf46.js\"></script>\n\n
82
+ \ <!-- Google Analytics -->\n <script type=\"text/javascript\">\n
83
+ \ var _gaq = _gaq || [];\n\n _gaq.push(\n ['_setAccount',
84
+ 'UA-1045810-67'],\n ['_setDomainName', 'bukkit.org'],\n ['_addIgnoredRef',
85
+ 'bukkit.org'],\n ['_trackPageview'],\n ['b._setAccount',
86
+ 'UA-1045810-22'],\n ['b._setDomainName', 'bukkit.org'],\n ['b._addIgnoredRef',
87
+ 'bukkit.org'],\n ['b._trackPageview'],\n ['c._setAccount',
88
+ 'UA-20541082-1'],\n ['c._trackPageview'],\n ['d._setAccount','UA-28992851-1'],\n
89
+ \ ['d._trackPageview'],\n ['d._trackPageLoadTime']\n
90
+ \ );\n\n (function() {\n var ga = document.createElement('script');
91
+ ga.type = 'text/javascript'; ga.async = true;\n ga.src = ('https:'
92
+ == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n
93
+ \ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga,
94
+ s);\n })();\n </script>\n <!-- End Google Analytics
95
+ -->\n\n <!-- Quantcast -->\n <script type=\"text/javascript\">\n
96
+ \ var _qevents = _qevents || [];\n (function() {\n var
97
+ elem = document.createElement('script');\n elem.src = (document.location.protocol
98
+ == \"https:\" ? \"https://secure\" : \"http://edge\") + \".quantserve.com/quant.js\";\n
99
+ \ elem.async = true;\n elem.type = \"text/javascript\";\n
100
+ \ var scpt = document.getElementsByTagName('script')[0];\n scpt.parentNode.insertBefore(elem,
101
+ scpt);\n })();\n _qevents.push({qacct: \"p-d2K9aGgyU-tIA\"});\n
102
+ \ </script>\n\n <noscript>\n <div style=\"display:none;\"><img
103
+ src=\"//pixel.quantserve.com/pixel/p-d2K9aGgyU-tIA.gif\" border=\"0\" height=\"1\"
104
+ width=\"1\" alt=\"Quantcast\" /></div>\n </noscript>\n <!--
105
+ End Quantcast -->\n\n <!-- Begin comScore -->\n <script>\n var
106
+ _comscore = _comscore || [];\n _comscore.push({ c1: \"2\", c2:
107
+ \"6035118\" });\n (function() {\n var s = document.createElement(\"script\"),
108
+ el = document.getElementsByTagName(\"script\")[0]; s.async = true;\n s.src
109
+ = (document.location.protocol == \"https:\" ? \"https://sb\" : \"http://b\")
110
+ + \".scorecardresearch.com/beacon.js\";\n el.parentNode.insertBefore(s,
111
+ el);\n })();\n </script>\n\n <noscript>\n <img
112
+ src=\"http://b.scorecardresearch.com/p?c1=2&amp;c2=6035118&amp;cv=2.0&amp;cj=1\"
113
+ />\n </noscript>\n <!-- End comScore -->\n\n <!-- Nielsen
114
+ Online SiteCensus -->\n <script type=\"text/javascript\">\n (function
115
+ () {\n var d = new Image(1, 1);\n d.onerror = d.onload
116
+ = function () {\n d.onerror = d.onload = null;\n };\n\n
117
+ \ d.src = [\"//secure-us.imrworldwide.com/cgi-bin/m?ci=us-603339h&cg=0&cc=1&si=\",
118
+ escape(window.location.href), \"&rp=\", escape(document.referrer), \"&ts=compact&rnd=\",
119
+ (new Date()).getTime()].join('');\n })();\n </script>\n\n
120
+ \ <noscript>\n <div><img src=\"//secure-us.imrworldwide.com/cgi-bin/m?ci=us-603339h&amp;cg=0&amp;cc=1&amp;ts=noscript\"
121
+ width=\"1\" height=\"1\" alt=\"\" /></div>\n </noscript>\n <!--
122
+ End Nielsen Online SiteCensus -->\n\n <!--[if lt IE 7 ]>\n <script
123
+ src=\"//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js\"></script>\n
124
+ \ <script>window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})</script>\n
125
+ \ <![endif]-->\n </body>\n</html>\n"
126
+ http_version:
127
+ recorded_at: Fri, 22 Nov 2013 22:26:08 GMT
128
+ recorded_with: VCR 2.7.0
@@ -0,0 +1,128 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://dl.bukkit.org/api/1.0/downloads/projects/craftbukkit/view/build-0000/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 404
17
+ message: NOT FOUND
18
+ headers:
19
+ Server:
20
+ - nginx/1.5.7
21
+ Date:
22
+ - Fri, 22 Nov 2013 22:26:09 GMT
23
+ Content-Type:
24
+ - text/html; charset=utf-8
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ Vary:
30
+ - Accept-Encoding
31
+ - Cookie
32
+ X-Ua-Compatible:
33
+ - IE=edge,chrome=1
34
+ body:
35
+ encoding: US-ASCII
36
+ string: ! "<!DOCTYPE html>\n\n\n<!--[if lt IE 7]> <html class=\"no-js ie6 oldie\"
37
+ lang=\"en\"> <![endif]-->\n<!--[if IE 7]> <html class=\"no-js ie7 oldie\"
38
+ lang=\"en\"> <![endif]-->\n<!--[if IE 8]> <html class=\"no-js ie8 oldie\"
39
+ lang=\"en\"> <![endif]-->\n<!--[if gt IE 8]><!-->\n<html class=\"no-js\" lang=\"en\">
40
+ <!--<![endif]-->\n <head>\n <meta charset=\"utf-8\">\n\n <title>404
41
+ Bukkit is Empty | Bukkit</title>\n <meta name=\"description\" content=\"Download
42
+ Bukkit and CraftBukkit straight from the official source!\">\n <meta
43
+ name=\"author\" content=\"The Bukkit Project\">\n\n <meta name=\"viewport\"
44
+ content=\"width=device-width,initial-scale=1\">\n\n \n <link
45
+ rel=\"stylesheet\" href=\"/static/CACHE/css/4b279872fb62.css\" type=\"text/css\"
46
+ />\n\n <link rel=\"shortcut icon\" href=\"http://forums.bukkit.org/favicon.ico\">\n
47
+ \ \n\n <script type=\"text/javascript\" src=\"/static/CACHE/js/a04a7c346fb3.js\"></script>\n
48
+ \ </head>\n\n <body>\n <div id=\"container\">\n <div
49
+ id=\"wrap\">\n <header>\n <div class=\"pageWidth
50
+ positionReset\">\n <a href=\"/\"><img src=\"/static/img/logo.png\"
51
+ width=\"400\" height=\"59\" alt=\"Bukkit logo - return to Download Bukkit
52
+ homepage\"></a>\n <ul id=\"mainTabs\">\n \n
53
+ \ <li class=\"selected\"><a href=\"/\">Home</a></li>\n
54
+ \ \n <li class=\"rightTab\"><a
55
+ href=\"http://bukkit.org\">Back to Bukkit</a></li>\n <li
56
+ class=\"rightTab\"><a href=\"http://forums.bukkit.org\">Forums</a></li>\n
57
+ \ </ul>\n <ul id=\"subTabs\"></ul>\n
58
+ \ <div id=\"searchBox\" class=\"rightTab\">\n <form
59
+ action=\"/downloads/search/\" method=\"GET\">\n <input
60
+ type=\"search\" name=\"q\" value=\"\" placeholder=\"Search...\" results=0>\n
61
+ \ </form>\n </div>\n </div>\n
62
+ \ </header>\n <div id=\"mainWrap\">\n <div
63
+ id=\"main\" role=\"main\">\n <div class=\"pageWidth
64
+ mainPad\">\n \n <div class=\"block oneCol\">\n
65
+ \ <div class=\"innerContent\">\n <h3>404 Bukkit is Empty</h3>\n
66
+ \ <blockquote>Unfortunately the Bukkit you were looking in is empty.
67
+ Please try another.</blockquote>\n <p>The URL you tried to access
68
+ does not exist.</p>\n <p>You can try:</p>\n <ul>\n
69
+ \ <li><a href=\"http://dl.bukkit.org/\">Returning to the
70
+ homepage</a></li>\n </ul>\n </div>\n </div>\n\n </div>\n
71
+ \ </div>\n </div>\n </div>\n <footer>\n
72
+ \ <div class=\"pageWidth\">\n \n <ul>\n
73
+ \ <li>Flexile theme by Erik Swan for XenForo, ported
74
+ for Bukkit. </li>\n <li>\n Are
75
+ you a developer? <a href=\"/about/\">Check out our API!</a>\n \n
76
+ \ </li>\n <li>&copy; 2013 Bukkit
77
+ Project | f8889b3a74dbb549e8d069d36f569ad5ed19ba6b\n</li>\n </ul>\n
78
+ \ </div>\n </footer>\n </div>\n <!--!
79
+ end of #container -->\n\n <!-- scripts -->\n <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js\"></script>\n
80
+ \ <script>window.jQuery || document.write('<script src=\"/static/js/libs/jquery-1.6.2.min.js\"><\\/script>')</script>\n
81
+ \ <script type=\"text/javascript\" src=\"/static/CACHE/js/ca7fd643cf46.js\"></script>\n\n
82
+ \ <!-- Google Analytics -->\n <script type=\"text/javascript\">\n
83
+ \ var _gaq = _gaq || [];\n\n _gaq.push(\n ['_setAccount',
84
+ 'UA-1045810-67'],\n ['_setDomainName', 'bukkit.org'],\n ['_addIgnoredRef',
85
+ 'bukkit.org'],\n ['_trackPageview'],\n ['b._setAccount',
86
+ 'UA-1045810-22'],\n ['b._setDomainName', 'bukkit.org'],\n ['b._addIgnoredRef',
87
+ 'bukkit.org'],\n ['b._trackPageview'],\n ['c._setAccount',
88
+ 'UA-20541082-1'],\n ['c._trackPageview'],\n ['d._setAccount','UA-28992851-1'],\n
89
+ \ ['d._trackPageview'],\n ['d._trackPageLoadTime']\n
90
+ \ );\n\n (function() {\n var ga = document.createElement('script');
91
+ ga.type = 'text/javascript'; ga.async = true;\n ga.src = ('https:'
92
+ == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n
93
+ \ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga,
94
+ s);\n })();\n </script>\n <!-- End Google Analytics
95
+ -->\n\n <!-- Quantcast -->\n <script type=\"text/javascript\">\n
96
+ \ var _qevents = _qevents || [];\n (function() {\n var
97
+ elem = document.createElement('script');\n elem.src = (document.location.protocol
98
+ == \"https:\" ? \"https://secure\" : \"http://edge\") + \".quantserve.com/quant.js\";\n
99
+ \ elem.async = true;\n elem.type = \"text/javascript\";\n
100
+ \ var scpt = document.getElementsByTagName('script')[0];\n scpt.parentNode.insertBefore(elem,
101
+ scpt);\n })();\n _qevents.push({qacct: \"p-d2K9aGgyU-tIA\"});\n
102
+ \ </script>\n\n <noscript>\n <div style=\"display:none;\"><img
103
+ src=\"//pixel.quantserve.com/pixel/p-d2K9aGgyU-tIA.gif\" border=\"0\" height=\"1\"
104
+ width=\"1\" alt=\"Quantcast\" /></div>\n </noscript>\n <!--
105
+ End Quantcast -->\n\n <!-- Begin comScore -->\n <script>\n var
106
+ _comscore = _comscore || [];\n _comscore.push({ c1: \"2\", c2:
107
+ \"6035118\" });\n (function() {\n var s = document.createElement(\"script\"),
108
+ el = document.getElementsByTagName(\"script\")[0]; s.async = true;\n s.src
109
+ = (document.location.protocol == \"https:\" ? \"https://sb\" : \"http://b\")
110
+ + \".scorecardresearch.com/beacon.js\";\n el.parentNode.insertBefore(s,
111
+ el);\n })();\n </script>\n\n <noscript>\n <img
112
+ src=\"http://b.scorecardresearch.com/p?c1=2&amp;c2=6035118&amp;cv=2.0&amp;cj=1\"
113
+ />\n </noscript>\n <!-- End comScore -->\n\n <!-- Nielsen
114
+ Online SiteCensus -->\n <script type=\"text/javascript\">\n (function
115
+ () {\n var d = new Image(1, 1);\n d.onerror = d.onload
116
+ = function () {\n d.onerror = d.onload = null;\n };\n\n
117
+ \ d.src = [\"//secure-us.imrworldwide.com/cgi-bin/m?ci=us-603339h&cg=0&cc=1&si=\",
118
+ escape(window.location.href), \"&rp=\", escape(document.referrer), \"&ts=compact&rnd=\",
119
+ (new Date()).getTime()].join('');\n })();\n </script>\n\n
120
+ \ <noscript>\n <div><img src=\"//secure-us.imrworldwide.com/cgi-bin/m?ci=us-603339h&amp;cg=0&amp;cc=1&amp;ts=noscript\"
121
+ width=\"1\" height=\"1\" alt=\"\" /></div>\n </noscript>\n <!--
122
+ End Nielsen Online SiteCensus -->\n\n <!--[if lt IE 7 ]>\n <script
123
+ src=\"//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js\"></script>\n
124
+ \ <script>window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})</script>\n
125
+ \ <![endif]-->\n </body>\n</html>\n"
126
+ http_version:
127
+ recorded_at: Fri, 22 Nov 2013 22:26:09 GMT
128
+ recorded_with: VCR 2.7.0