bukin 0.6.0 → 0.7.0

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