muxer 0.0.3 → 0.0.4

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.
@@ -0,0 +1,338 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.rubydoc.info/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Content-Type:
16
+ - text/html;charset=utf-8
17
+ Last-Modified:
18
+ - Tue, 07 Apr 2015 12:18:27 GMT
19
+ X-Xss-Protection:
20
+ - 1; mode=block
21
+ X-Content-Type-Options:
22
+ - nosniff
23
+ X-Frame-Options:
24
+ - SAMEORIGIN
25
+ Content-Length:
26
+ - '19885'
27
+ Accept-Ranges:
28
+ - bytes
29
+ Date:
30
+ - Tue, 07 Apr 2015 12:36:07 GMT
31
+ X-Varnish:
32
+ - 773428516 773417265
33
+ Age:
34
+ - '1060'
35
+ Via:
36
+ - 1.1 varnish
37
+ Connection:
38
+ - close
39
+ X-Cache-Status:
40
+ - HIT
41
+ body:
42
+ encoding: UTF-8
43
+ string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html>\n
44
+ \ <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"
45
+ />\n <title>RubyDoc.info: Documenting RubyGems, Stdlib, and GitHub Projects</title>\n
46
+ \ <link rel=\"stylesheet\" href=\"/css/style.css\" type=\"text/css\" media=\"screen\"
47
+ charset=\"utf-8\" />\n <link rel=\"stylesheet\" href=\"/css/custom.css\"
48
+ type=\"text/css\" media=\"screen\" charset=\"utf-8\" />\n <link rel=\"stylesheet\"
49
+ href=\"/css/projects.css\" type=\"text/css\" media=\"screen\" charset=\"utf-8\"
50
+ />\n <script type=\"text/javascript\" charset=\"utf-8\" src=\"/js/jquery.js\"></script>\n
51
+ \ <script type=\"text/javascript\" charset=\"utf-8\" src=\"/js/project_checkout.js\"></script>\n
52
+ \ <script type=\"text/javascript\">\n function searchClick() {\n searchPrompt
53
+ = $('#docSearch').val();\n\n $('#docSearch').focus(function() {\n if
54
+ ($(this).val().match(/^Search/)) {\n $(this).val('');\n }\n
55
+ \ });\n $('#docSearch').blur(function() {\n if ($(this).val()
56
+ == '') {\n $(this).val(searchPrompt);\n }\n });\n
57
+ \ }\n\n function aboutLink() {\n $('#about').click(function()
58
+ {\n if ($('#info').is(':hidden')) { $('#checkout').hide(); $('#tender_window').hide();
59
+ $('#info').fadeIn('fast'); }\n else $('#info').fadeOut('fast');\n
60
+ \ return false;\n });\n }\n\n function checkoutLink()
61
+ {\n $('#new_checkout').click(function() {\n if ($('#checkout').is(':hidden'))
62
+ { $('#info').hide(); $('#tender_window').hide(); $('#checkout').fadeIn('fast');
63
+ }\n else $('#checkout').fadeOut('fast');\n return false;\n
64
+ \ });\n }\n\n function helpLink() {\n $('#help').click(function()
65
+ {\n if ($('#tender_window').is(':visible')) {\n $('#tender_window').hide();\n
66
+ \ } else {\n $('#help_tender').click();\n $('#info').hide();\n
67
+ \ $('#checkout').hide();\n }\n });\n }\n\n
68
+ \ function reloadProject() {\n $('.libraries .project_reload').click(function()
69
+ {\n var proj = $(this).parent().find('a:first-child').text();\n $('#url').val(\"git://github.com/\"
70
+ + proj);\n $('#commit').val('');\n $('#checkout_form').submit();\n
71
+ \ $(this).find('img').attr('src', '/images/loading.gif');\n return
72
+ false;\n });\n }\n\n function saveIndex(url) {\n var
73
+ date = new Date();\n date.setDate(date.getDate() + (url == '' ? -999
74
+ : 99999));\n document.cookie = \"defaultIndex=\" + escape(url) + \";expires=\"
75
+ + date.toUTCString();\n }\n\n $(searchClick);\n $(aboutLink);\n
76
+ \ $(checkoutLink);\n $(helpLink);\n $(reloadProject);\n </script>\n
77
+ \ </head>\n <body>\n <img src=\"/images/logo.gif\" width=\"1\" height=\"1\"
78
+ style=\"display: none\" alt=\"Rubydoc.info\" />\n <a id=\"learn_yard\"
79
+ href=\"http://yardoc.org\" title=\"Learn More About YARD\"><img src=\"/images/learn.png\"
80
+ alt=\"Learn More About YARD\" /></a>\n <noscript>\n <style type=\"text/css\"
81
+ media=\"screen\">\n body { margin: 0; padding: 0;}\n #logo,
82
+ #content { padding: 0 20px; }\n #noscript { background: #111; color:
83
+ #fff; padding: 10px 20px; }\n #top_nav { top: 48px; }\n </style>\n
84
+ \ <div id=\"noscript\"><strong>It seems you've disabled Javascript.</strong>\n
85
+ \ That's okay, but you might run into some problems. We try to make
86
+ things work without script support\n as much as possible, but sometimes
87
+ it needs to be used. We apologize for any inconvenience and hope you understand.</div>\n
88
+ \ </noscript>\n <div id=\"logo\">\n <h1><a href=\"/\">RubyDoc.info</a>
89
+ <small>YARD Documentation Server</small></h1>\n </div>\n\n \n <p
90
+ id=\"notice\">\n <strong>We need your help!</strong>\n We just
91
+ rolled out our new frameless templates for library docs.\n If something
92
+ doesn't look right on your desktop or mobile device, please\n <a href=\"#\"
93
+ onclick=\"$('#help_tender').click(); return false;\">let us know</a>.\n </div>\n
94
+ \ \n\n <ul id=\"top_nav\">\n <li><a id=\"new_checkout\" href=\"#\">Add
95
+ Project</a></li>\n <li><a id=\"about\" href=\"#\">About</a></li>\n <li><a
96
+ id=\"help\" href=\"#\">Help</a></li>\n </ul>\n <a id=\"help_tender\"
97
+ href=\"#\" style=\"display:none;\"></a>\n <div class=\"clear\"></div>\n\n
98
+ \ <div id=\"info\">\n <p>\n <strong>RubyDoc.info</strong> is
99
+ your source for open source Ruby library documentation,\n generating
100
+ fresh docs for Gems and popular Git repositories.\n </p>\n <p>\n
101
+ \ This site uses <a href=\"http://yardoc.org\">YARD</a> to generate
102
+ docs on the fly.\n To make your docs look better, you can check out
103
+ some of YARD's\n <a href=\"/gems/yard/file/docs/WhatsNew.md\">killer
104
+ features</a>.\n </p>\n <p>\n <strong>We have DISQUS integration!</strong>
105
+ Click the <em>permalink</em>\n (<a href=\"/gems/yard/YARD/Templates/Engine.render\">like
106
+ this one</a>)\n on a method to see user comments on a method page.\n
107
+ \ </p>\n <p>\n Looking for a <a href=\"http://github.com\">GitHub</a>\n
108
+ \ <a href=\"http://help.github.com/post-receive-hooks/\">post-receive
109
+ hook</a>?\n Use <tt>http://www.rubydoc.info/checkout</tt>.\n </p>\n
110
+ \ <p>\n <small>\n RubyDoc.info was made possible by <strong>Loren
111
+ Segal</strong> and <strong>Nick Plante</strong>, with help from a <a href=\"http://groups.google.com/group/yardoc\">community</a>
112
+ of <a href=\"http://github.com/lsegal/rubydoc.info\">friendly contributors</a>.\n
113
+ \ </small>\n </p>\n </div>\n\n <script type=\"text/javascript\"
114
+ charset=\"utf-8\">\n $(function() {\n if (document.referrer) {\n var
115
+ refurl = document.referrer;\n var re = new RegExp(\"^\" + window.location.protocol
116
+ + \"//\" + window.location.host + \"/\");\n if (refurl.match(re)) {\n
117
+ \ saveIndex('');\n return;\n }\n }\n\n var list =
118
+ document.cookie.split(/\\s*;\\s*/);\n for (var i = 0; i < list.length;
119
+ i++) {\n var key = list[i].split('=', 1)[0];\n if (key == 'defaultIndex')
120
+ {\n var name = list[i].substr(key.length + 1);\n window.location
121
+ = '/' + name;\n saveIndex('');\n return;\n }\n }\n });\n</script>\n\n<div
122
+ id=\"content\">\n <nav>\n <ul id=\"navigation\">\n <li><a href=\"/featured\">Featured</a></li>\n
123
+ \ <li><a href=\"/stdlib\">Stdlib</a></li>\n <li><a href=\"/gems\">RubyGems</a></li>\n
124
+ \ <li class=\"selected\">GitHub</li>\n <li class=\"search\"><form action=\"/find/github\"
125
+ method=\"GET\"><input type=\"text\" id=\"docSearch\" name=\"q\" value=\"Search
126
+ GitHub Projects\"/></form></li>\n </ul>\n </nav>\n\n \n <h2>Featured Libraries</h2>\n
127
+ \ <ul class=\"libraries\">\n \n <li class=\"r1\">\n \n \n
128
+ \ <a href=\"/gems/yard/0.8.7.6\">yard</a>\n \n <small>(0.8.7.6,\n
129
+ \ <a href=\"/gems/yard/0.8.7.5\">0.8.7.5</a>, <a href=\"/gems/yard/0.8.7.4\">0.8.7.4</a>,
130
+ <a href=\"/gems/yard/0.8.7.3\">0.8.7.3</a>, <a href=\"/gems/yard/0.8.7.2\">0.8.7.2</a>)</small>\n
131
+ \ \n </li>\n \n <li class=\"r2\">\n \n \n <a href=\"/docs/rails/4.1.7\">rails</a>\n
132
+ \ \n <small>(4.1.7,\n <a href=\"/docs/rails/4.0.0\">4.0.0</a>,
133
+ <a href=\"/docs/rails/3.2.8\">3.2.8</a>, <a href=\"/docs/rails/3.1.1\">3.1.1</a>,
134
+ <a href=\"/docs/rails/3.0.0\">3.0.0</a>)</small>\n \n </li>\n \n
135
+ \ </ul>\n \n\n <h2>Recently Updated GitHub Projects</h2>\n <ul class=\"alpha_index\">\n
136
+ \ \n <li><a href=\"/github/~a\">A</a></li>\n \n <li><a href=\"/github/~b\">B</a></li>\n
137
+ \ \n <li><a href=\"/github/~c\">C</a></li>\n \n <li><a href=\"/github/~d\">D</a></li>\n
138
+ \ \n <li><a href=\"/github/~e\">E</a></li>\n \n <li><a href=\"/github/~f\">F</a></li>\n
139
+ \ \n <li><a href=\"/github/~g\">G</a></li>\n \n <li><a href=\"/github/~h\">H</a></li>\n
140
+ \ \n <li><a href=\"/github/~i\">I</a></li>\n \n <li><a href=\"/github/~j\">J</a></li>\n
141
+ \ \n <li><a href=\"/github/~k\">K</a></li>\n \n <li><a href=\"/github/~l\">L</a></li>\n
142
+ \ \n <li><a href=\"/github/~m\">M</a></li>\n \n <li><a href=\"/github/~n\">N</a></li>\n
143
+ \ \n <li><a href=\"/github/~o\">O</a></li>\n \n <li><a href=\"/github/~p\">P</a></li>\n
144
+ \ \n <li><a href=\"/github/~q\">Q</a></li>\n \n <li><a href=\"/github/~r\">R</a></li>\n
145
+ \ \n <li><a href=\"/github/~s\">S</a></li>\n \n <li><a href=\"/github/~t\">T</a></li>\n
146
+ \ \n <li><a href=\"/github/~u\">U</a></li>\n \n <li><a href=\"/github/~v\">V</a></li>\n
147
+ \ \n <li><a href=\"/github/~w\">W</a></li>\n \n <li><a href=\"/github/~x\">X</a></li>\n
148
+ \ \n <li><a href=\"/github/~y\">Y</a></li>\n \n <li><a href=\"/github/~z\">Z</a></li>\n
149
+ \ \n <li class=\"selected\">Latest</li>\n </ul>\n\n <style type=\"text/css\"
150
+ media=\"screen\">\n #top_nav #new_checkout { display: block; }\n</style>\n<div
151
+ id=\"checkout\">\n <h2>Add your own project</h2>\n <small class=\"example\">(eg.
152
+ git://github.com/lsegal/yard.git)</small>\n <form id=\"checkout_form\" action=\"/checkout\"
153
+ method=\"post\">\n <input class=\"url\" type=\"text\" id=\"url\" name=\"url\"
154
+ placeholder=\"git://github.com/username/project\" />\n <div class=\"loadicon\"></div>\n
155
+ \ <input type=\"hidden\" id=\"scheme\" name=\"scheme\" value=\"git\" />\n
156
+ \ <br/>\n <small>Commit (optional): <input type=\"text\" id=\"commit\"
157
+ name=\"commit\" value=\"\" /></small>\n <input type=\"submit\" id=\"submit\"
158
+ value=\"Go\" />\n </form>\n <script type=\"text/javascript\" charset=\"utf-8\">\n
159
+ \ if (jQuery.browser.safari) $('#checkout_form #commit').css('width', '122px');\n
160
+ \ </script>\n</div>\n\n <ul class=\"libraries\">\n \n \n \n <li>\n
161
+ \ <a href=\"/github/pwnall/webkit_remote/master\"><strong>pwnall/webkit_remote</strong></a>\n
162
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
163
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/pwnall/webkit_remote\"
164
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
165
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
166
+ \ <a href=\"/github/fazibear/gruby/master\"><strong>fazibear/gruby</strong></a>\n
167
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
168
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/fazibear/gruby\"
169
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
170
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
171
+ \ <a href=\"/github/ReactiveX/Rx.rb/master\"><strong>ReactiveX/Rx.rb</strong></a>\n
172
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
173
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/ReactiveX/Rx.rb\"
174
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
175
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
176
+ \ <a href=\"/github/metaskills/pdf-writer/master\"><strong>metaskills/pdf-writer</strong></a>\n
177
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
178
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/metaskills/pdf-writer\"
179
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
180
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
181
+ \ <a href=\"/github/robotarmy/acts_as_status_for/master\"><strong>robotarmy/acts_as_status_for</strong></a>\n
182
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
183
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/robotarmy/acts_as_status_for\"
184
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
185
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
186
+ \ <a href=\"/github/dlt/yahoo_weatherman/master\"><strong>dlt/yahoo_weatherman</strong></a>\n
187
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
188
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/dlt/yahoo_weatherman\"
189
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
190
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
191
+ \ <a href=\"/github/brickrb/brick/master\"><strong>brickrb/brick</strong></a>\n
192
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
193
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/brickrb/brick\"
194
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
195
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
196
+ \ <a href=\"/github/step1profit/inde_struct/master\"><strong>step1profit/inde_struct</strong></a>\n
197
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
198
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/step1profit/inde_struct\"
199
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
200
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
201
+ \ <a href=\"/github/fornellas/command_utils/master\"><strong>fornellas/command_utils</strong></a>\n
202
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
203
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/fornellas/command_utils\"
204
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
205
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
206
+ \ <a href=\"/github/buren/site_mapper/master\"><strong>buren/site_mapper</strong></a>\n
207
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
208
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/buren/site_mapper\"
209
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
210
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
211
+ \ <a href=\"/github/buren/wayback_archiver/master\"><strong>buren/wayback_archiver</strong></a>\n
212
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
213
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/buren/wayback_archiver\"
214
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
215
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
216
+ \ <a href=\"/github/jphastings/sinatra-swagger/master\"><strong>jphastings/sinatra-swagger</strong></a>\n
217
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
218
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/jphastings/sinatra-swagger\"
219
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
220
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
221
+ \ <a href=\"/github/jch/html-pipeline/master\"><strong>jch/html-pipeline</strong></a>\n
222
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
223
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/jch/html-pipeline\"
224
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
225
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
226
+ \ <a href=\"/github/fractalsoft/diacritics/master\"><strong>fractalsoft/diacritics</strong></a>\n
227
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
228
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/fractalsoft/diacritics\"
229
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
230
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
231
+ \ <a href=\"/github/guard/guard-compass/master\"><strong>guard/guard-compass</strong></a>\n
232
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
233
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/guard/guard-compass\"
234
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
235
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
236
+ \ <a href=\"/github/locomotivecms/engine/master\"><strong>locomotivecms/engine</strong></a>\n
237
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
238
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/locomotivecms/engine\"
239
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
240
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
241
+ \ <a href=\"/github/troessner/transitions/master\"><strong>troessner/transitions</strong></a>\n
242
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
243
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/troessner/transitions\"
244
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
245
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
246
+ \ <a href=\"/github/kenjij/subaru/master\"><strong>kenjij/subaru</strong></a>\n
247
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
248
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/kenjij/subaru\"
249
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
250
+ /></a>\n <small>(master)</small>\n </li>\n \n \n <li>\n
251
+ \ <a href=\"/github/danielpclark/PolyBelongsTo/730c15\"><strong>danielpclark/PolyBelongsTo</strong></a>\n
252
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
253
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/danielpclark/PolyBelongsTo\"
254
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
255
+ /></a>\n <small>(730c15)</small>\n </li>\n \n \n <li>\n
256
+ \ <a href=\"/github/mvz/ruby-gir-ffi/master\"><strong>mvz/ruby-gir-ffi</strong></a>\n
257
+ \ <a href=\"#\" class=\"project_reload\" title=\"Reload this project\"><img
258
+ class=\"icon reload\" src=\"/images/reload.png\" /></a>\n <a href=\"http://github.com/mvz/ruby-gir-ffi\"
259
+ title=\"View this project on GitHub\"><img class=\"icon github\" src=\"/images/git.png\"
260
+ /></a>\n <small>(master)</small>\n </li>\n \n </ul>\n\n</div>\n\n\n\n
261
+ \ <div id=\"footer\">\n <a href=\"http://github.com/lsegal/rubydoc.info\">RubyDoc.info</a>
262
+ is powered by <a href=\"http://yardoc.org/\">yard</a> 0.8.7.6 (ruby-2.1.4)\n
263
+ \ \n <div class=\"sponsor\">\n <p>Sponsored by</p>\n \n
264
+ \ <a href=\"http://linode.com\"><img src=\"/images/sponsor/linode.com.png\"
265
+ alt=\"Sponsored by linode.com\"/></a>\n \n <a href=\"http://dockyard.com\"><img
266
+ src=\"/images/sponsor/dockyard.com.png\" alt=\"Sponsored by dockyard.com\"/></a>\n
267
+ \ \n </div>\n \n </div>\n \n <script type=\"text/javascript\"
268
+ charset=\"utf-8\">\n Tender = {\n hideToggle: true,\n widgetToggles:
269
+ [document.getElementById('help_tender')]\n }\n </script>\n <script
270
+ src=\"https://rubydoc.tenderapp.com/tender_widget.js\" type=\"text/javascript\"></script>\n
271
+ \ \n </body>\n\n \n <script src=\"http://static.getclicky.com/js\"
272
+ type=\"text/javascript\"></script>\n <script type=\"text/javascript\">clicky.init(246206);</script>\n
273
+ \ <noscript><p><img alt=\"Clicky\" width=\"1\" height=\"1\" src=\"http://static.getclicky.com/246206ns.gif\"
274
+ /></p></noscript>\n \n\n \n <script>\n (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n
275
+ \ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n
276
+ \ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n
277
+ \ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n
278
+ \ ga('create', 'UA-7172246-5', 'auto');\n ga('send', 'pageview');\n </script>\n
279
+ \ \n</html>\n"
280
+ http_version:
281
+ recorded_at: Tue, 07 Apr 2015 12:36:08 GMT
282
+ - request:
283
+ method: get
284
+ uri: https://www.google.com/
285
+ body:
286
+ encoding: US-ASCII
287
+ string: ''
288
+ headers: {}
289
+ response:
290
+ status:
291
+ code: 200
292
+ message: OK
293
+ headers:
294
+ Date:
295
+ - Tue, 07 Apr 2015 12:36:07 GMT
296
+ Expires:
297
+ - '-1'
298
+ Cache-Control:
299
+ - private, max-age=0
300
+ Content-Type:
301
+ - text/html; charset=ISO-8859-1
302
+ Set-Cookie:
303
+ - NID=67=jOPCSGbiqymBn-WRNl1fC1fyS7AtmrdaPnGMXXQomDH2AJpcZE9kroVVObhRBambJVtXBBJMhg1r9IiyqHWyEVu9jFRmYox9TokbO6XbZqYBepvVtYrueI_876S6s9fN;
304
+ expires=Wed, 07-Oct-2015 12:36:07 GMT; path=/; domain=.google.com; HttpOnly
305
+ - PREF=ID=d4b8300eaac3bdcc:FF=0:TM=1428410167:LM=1428410167:S=CgUFKBnEwR-HowyN;
306
+ expires=Thu, 06-Apr-2017 12:36:07 GMT; path=/; domain=.google.com
307
+ P3p:
308
+ - CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657
309
+ for more info."
310
+ Server:
311
+ - gws
312
+ X-Xss-Protection:
313
+ - 1; mode=block
314
+ X-Frame-Options:
315
+ - SAMEORIGIN
316
+ Alternate-Protocol:
317
+ - 443:quic,p=0.5
318
+ Accept-Ranges:
319
+ - none
320
+ Vary:
321
+ - Accept-Encoding
322
+ Connection:
323
+ - close
324
+ body:
325
+ encoding: UTF-8
326
+ string: |-
327
+ <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for." name="description"><meta content="noodp" name="robots"><meta content="/images/google_favicon_128.png" itemprop="image"><title>Google</title><script>(function(){window.google={kEI:'N88jVZCbLsqrgwT2s4GQCw',kEXPI:'3700261,3700362,3700366,4011559,4017578,4020347,4028717,4028932,4029050,4029402,4029515,4029815,4030092,4030124,4030440,4031242,4031304,4031391,4031572,4031608,4031622,4031627,4031713,4031790,4031804,4032059,4032126,4032141,4032480,4032500,8300096,8500394,8500947,8501247,8501295,8501313,8501350,8501393,10200083,10201002',authuser:0,kSID:'c9c918f0_10'};google.kHL='en';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b};google.https=function(){return"https:"==window.location.protocol};google.ml=function(){};google.time=function(){return(new Date).getTime()};google.log=function(a,b,e,f,l){var d=new Image,h=google.lc,g=google.li,c="",m=google.ls||"";d.onerror=d.onload=d.onabort=function(){delete h[g]};h[g]=d;if(!e&&-1==b.search("&ei=")){var k=google.getEI(f),c="&ei="+k;-1==b.search("&lei=")&&((f=google.getLEI(f))?c+="&lei="+f:k!=google.kEI&&(c+="&lei="+google.kEI))}a=e||"/"+(l||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+c+m+"&zx="+google.time();/^http:/i.test(a)&&google.https()?(google.ml(Error("a"),!1,{src:a,glmm:1}),delete h[g]):(window.google&&window.google.vel&&
328
+ window.google.vel.lu&&window.google.vel.lu(a),d.src=a,google.li=g+1)};google.y={};google.x=function(a,b){google.y[a.id]=[a,b];return!1};google.load=function(a,b,e){google.x({id:a+n++},function(){google.load(a,b,e)})};var n=0;})();google.kCSI={};var _gjwl=location;function _gjuc(){var a=_gjwl.href.indexOf("#");if(0<=a&&(a=_gjwl.href.substring(a),0<a.indexOf("&q=")||0<=a.indexOf("#q="))&&(a=a.substring(1),-1==a.indexOf("#"))){for(var d=0;d<a.length;){var b=d;"&"==a.charAt(b)&&++b;var c=a.indexOf("&",b);-1==c&&(c=a.length);b=a.substring(b,c);if(0==b.indexOf("fp="))a=a.substring(0,d)+a.substring(c,a.length),c=d;else if("cad=h"==b)return 0;d=c}_gjwl.href="/search?"+a+"&cad=h";return 1}return 0}
329
+ function _gjh(){!_gjuc()&&window.google&&google.x&&google.x({id:"GJH"},function(){google.nav&&google.nav.gjh&&google.nav.gjh()})};window._gjh&&_gjh();</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#36c}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff !important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px}.lsbb{display:block}.ftl,#fll a{display:inline-block;margin:0 12px}.lsb{background:url(/images/srpr/nav_logo80.png) 0 -258px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}</style><script></script></head><body bgcolor="#fff"><script>(function(){var src='/images/nav_logo176.png';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}
330
+ if (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}
331
+ }
332
+ })();</script><div id="mngb"> <div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href="https://www.google.com/imghp?hl=en&tab=wi">Images</a> <a class=gb1 href="https://maps.google.com/maps?hl=en&tab=wl">Maps</a> <a class=gb1 href="https://play.google.com/?hl=en&tab=w8">Play</a> <a class=gb1 href="https://www.youtube.com/?tab=w1">YouTube</a> <a class=gb1 href="https://news.google.com/nwshp?hl=en&tab=wn">News</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 href="https://drive.google.com/?tab=wo">Drive</a> <a class=gb1 style="text-decoration:none" href="http://www.google.com/intl/en/options/"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.com/history/optout?hl=en" class=gb4>Web History</a> | <a href="/preferences?hl=en" class=gb4>Settings</a> | <a target=_top id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&continue=https://www.google.com/" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div> </div><center><span id="prt" style="display:block"> <div><style>.pmoabs{background-color:#fff;border:1px solid #E5E5E5;color:#666;font-size:13px;padding-bottom:20px;position:absolute;right:2px;top:3px;z-index:986}#pmolnk{border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px}.kd-button-submit{border:1px solid #3079ed;background-color:#4d90fe;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#4787ed));background-image:-webkit-linear-gradient(top,#4d90fe,#4787ed);background-image:-moz-linear-gradient(top,#4d90fe,#4787ed);background-image:-ms-linear-gradient(top,#4d90fe,#4787ed);background-image:-o-linear-gradient(top,#4d90fe,#4787ed);background-image:linear-gradient(top,#4d90fe,#4787ed);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#4d90fe',EndColorStr='#4787ed')}.kd-button-submit:hover{border:1px solid #2f5bb7;background-color:#357ae8;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#357ae8));background-image:-webkit-linear-gradient(top,#4d90fe,#357ae8);background-image:-moz-linear-gradient(top,#4d90fe,#357ae8);background-image:-ms-linear-gradient(top,#4d90fe,#357ae8);background-image:-o-linear-gradient(top,#4d90fe,#357ae8);background-image:linear-gradient(top,#4d90fe,#357ae8);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#4d90fe',EndColorStr='#357ae8')}.kd-button-submit:active{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.3);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.3);box-shadow:inset 0 1px 2px rgba(0,0,0,0.3)}#pmolnk a{color:#fff;display:inline-block;font-weight:bold;padding:5px 20px;text-decoration:none;white-space:nowrap}.xbtn{color:#999;cursor:pointer;font-size:23px;line-height:5px;padding-top:5px}.padi{padding:0 8px 0 10px}.padt{padding:5px 20px 0 0;color:#444}.pads{text-align:left;max-width:200px}</style> <div class="pmoabs" id="pmocntr2" style="behavior:url(#default#userdata);display:none"> <table border="0"> <tr> <td colspan="2"> <div class="xbtn" onclick="google.promos&&google.promos.toast&& google.promos.toast.cpc()" style="float:right">&times;</div> </td> </tr> <tr> <td class="padi" rowspan="2"> <img src="/images/icons/product/chrome-48.png"> </td> <td class="pads">A faster way to browse the web</td> </tr> <tr> <td class="padt"> <div class="kd-button-submit" id="pmolnk"> <a href="/chrome/index.html?hl=en&amp;brand=CHNG&amp;utm_source=en-hpp&amp;utm_medium=hpp&amp;utm_campaign=en" onclick="google.promos&&google.promos.toast&& google.promos.toast.cl()">Install Google Chrome</a> </div> </td> </tr> </table> </div> <script type="text/javascript">(function(){var a={o:{}};a.o.qa=50;a.o.oa=10;a.o.Y="body";a.o.Oa=!0;a.o.Ra=function(b,c){var d=a.o.Ea();a.o.Ga(d,b,c);a.o.Sa(d);a.o.Oa&&a.o.Pa(d)};a.o.Sa=function(b){(b=a.o.$(b))&&0<b.forms.length&&b.forms[0].submit()};a.o.Ea=function(){var b=document.createElement("iframe");b.height=0;b.width=0;b.style.overflow="hidden";b.style.top=b.style.left="-100px";b.style.position="absolute";document.body.appendChild(b);return b};a.o.$=function(b){return b.contentDocument||b.contentWindow.document};a.o.Ga=function(b,c,d){b=a.o.$(b);b.open();d=["<",a.o.Y,'><form method=POST action="',d,'">'];for(var e in c)c.hasOwnProperty(e)&&d.push('<textarea name="',e,'">',c[e],"</textarea>");d.push("</form></",a.o.Y,">");b.write(d.join(""));b.close()};a.o.ba=function(b,c){c>a.o.oa?google&&google.ml&&google.ml(Error("ogcdr"),!1,{cause:"timeout"}):b.contentWindow?a.o.Qa(b):window.setTimeout(function(){a.o.ba(b,c+1)},a.o.qa)};a.o.Qa=function(b){document.body.removeChild(b)};a.o.Pa=function(b){a.o.Ca(b,"load",function(){a.o.ba(b,0)})};a.o.Ca=function(b,c,d){b.addEventListener?b.addEventListener(c,d,!1):b.attachEvent&&b.attachEvent("on"+c,d)};var m={Va:0,D:1,F:2,K:5};a.k={};a.k.M={ka:"i",J:"d",ma:"l"};a.k.A={N:"0",G:"1"};a.k.O={L:1,J:2,I:3};a.k.v={ea:"a",ia:"g",C:"c",ya:"u",xa:"t",N:"p",pa:"pid",ga:"eid",za:"at"};a.k.la=window.location.protocol+"//www.google.com/_/og/promos/";a.k.ha="g";a.k.Aa="z";a.k.S=function(b,c,d,e){var f=null;switch(c){case m.D:f=window.gbar.up.gpd(b,d,!0);break;case m.K:f=window.gbar.up.gcc(e)}return null==f?0:parseInt(f,10)};a.k.Ka=function(b,c,d){return c==m.D?null!=window.gbar.up.gpd(b,d,!0):!1};a.k.P=function(b,c,d,e,f,h,k,l){var g={};g[a.k.v.N]=b;g[a.k.v.ia]=c;g[a.k.v.ea]=d;g[a.k.v.za]=e;g[a.k.v.ga]=f;g[a.k.v.pa]=1;k&&(g[a.k.v.C]=k);l&&(g[a.k.v.ya]=l);if(h)g[a.k.v.xa]=h;else return google.ml(Error("knu"),!1,{cause:"Token is not found"}),null;return g};a.k.V=function(b,c,d){if(b){var e=c?a.k.ha:a.k.Aa;c&&d&&(e+="?authuser="+d);a.o.Ra(b,a.k.la+e)}};a.k.Fa=function(b,c,d,e,f,h,k){b=a.k.P(c,b,a.k.M.J,a.k.O.J,d,f,null,e);a.k.V(b,h,k)};a.k.Ia=function(b,c,d,e,f,h,k){b=a.k.P(c,b,a.k.M.ka,a.k.O.L,d,f,e,null);a.k.V(b,h,k)};a.k.Na=function(b,c,d,e,f,h,k,l,g,n){switch(c){case m.K:window.gbar.up.dpc(e,f);break;case m.D:window.gbar.up.spd(b,d,1,!0);break;case m.F:g=g||!1,l=l||"",h=h||0,k=k||a.k.A.G,n=n||0,a.k.Fa(e,h,k,f,l,g,n)}};a.k.La=function(b,c,d,e,f){return c==m.D?0<d&&a.k.S(b,c,e,f)>=d:!1};a.k.Ha=function(b,c,d,e,f,h,k,l,g,n){switch(c){case m.K:window.gbar.up.iic(e,f);break;case m.D:c=a.k.S(b,c,d,e)+1;window.gbar.up.spd(b,d,c.toString(),!0);break;case m.F:g=g||!1,l=l||"",h=h||0,k=k||a.k.A.N,n=n||0,a.k.Ia(e,h,k,1,l,g,n)}};a.k.Ma=function(b,c,d,e,f,h){b=a.k.P(c,b,a.k.M.ma,a.k.O.I,d,e,null,null);a.k.V(b,f,h)};var p={Ta:"a",Wa:"l",Ua:"c",fa:"d",I:"h",L:"i",gb:"n",G:"x",cb:"ma",eb:"mc",fb:"mi",Xa:"pa",Ya:"pc",$a:"pi",bb:"pn",ab:"px",Za:"pd",hb:"gpa",jb:"gpi",kb:"gpn",lb:"gpx",ib:"gpd"};a.i={};a.i.s={na:"hplogo",wa:"pmocntr2"};a.i.A={va:"0",G:"1",da:"2"};a.i.p=document.getElementById(a.i.s.wa);a.i.ja=16;a.i.ra=2;a.i.ta=20;google.promos=google.promos||{};google.promos.toast=google.promos.toast||{};a.i.H=function(b){a.i.p&&(a.i.p.style.display=b?"":"none",a.i.p.parentNode&&(a.i.p.parentNode.style.position=b?"relative":""))};a.i.ca=function(b){try{if(a.i.p&&b&&b.es&&b.es.m){var c=window.gbar.rtl(document.body)?"left":"right";a.i.p.style[c]=b.es.m-a.i.ja+a.i.ra+"px";a.i.p.style.top=a.i.ta+"px"}}catch(d){google.ml(d,!1,{cause:a.i.w+"_PT"})}};google.promos.toast.cl=function(){try{a.i.Q==m.F&&a.k.Ma(a.i.T,a.i.B,a.i.A.da,a.i.X,a.i.U,a.i.W),window.gbar.up.sl(a.i.B,a.i.w,p.I,a.i.R(),1)}catch(b){google.ml(b,!1,{cause:a.i.w+"_CL"})}};google.promos.toast.cpc=function(){try{a.i.p&&(a.i.H(!1),a.k.Na(a.i.p,a.i.Q,a.i.s.Z,a.i.T,a.i.Da,a.i.B,a.i.A.G,a.i.X,a.i.U,a.i.W),window.gbar.up.sl(a.i.B,a.i.w,p.fa,a.i.R(),1))}catch(b){google.ml(b,!1,{cause:a.i.w+"_CPC"})}};a.i.aa=function(){try{if(a.i.p){var b=276,c=document.getElementById(a.i.s.na);c&&(b=Math.max(b,c.offsetWidth));var d=parseInt(a.i.p.style.right,10)||0;a.i.p.style.visibility=2*(a.i.p.offsetWidth+d)+b>document.body.clientWidth?"hidden":""}}catch(e){google.ml(e,!1,{cause:a.i.w+"_HOSW"})}};a.i.Ba=function(){var b=["gpd","spd","aeh","sl"];if(!window.gbar||!window.gbar.up)return!1;for(var c=0,d;d=b[c];c++)if(!(d in window.gbar.up))return!1;return!0};a.i.Ja=function(){return a.i.p.currentStyle&&"absolute"!=a.i.p.currentStyle.position};google.promos.toast.init=function(b,c,d,e,f,h,k,l,g,n,q,r){try{a.i.Ba()?a.i.p&&(e==m.F&&!l==!g?(google.ml(Error("tku"),!1,{cause:"zwieback: "+g+", gaia: "+l}),a.i.H(!1)):(a.i.s.C="toast_count_"+c+(q?"_"+q:""),a.i.s.Z="toast_dp_"+c+(r?"_"+r:""),a.i.w=d,a.i.B=b,a.i.Q=e,a.i.T=c,a.i.Da=f,a.i.X=l?l:g,a.i.U=!!l,a.i.W=k,a.k.Ka(a.i.p,e,a.i.s.Z,c)||a.k.La(a.i.p,e,h,a.i.s.C,c)||a.i.Ja()?a.i.H(!1):(a.k.Ha(a.i.p,e,a.i.s.C,c,f,a.i.B,a.i.A.va,a.i.X,a.i.U,a.i.W),n||(window.gbar.up.aeh(window,"resize",a.i.aa),window.lol=
333
+ a.i.aa,window.gbar.elr&&a.i.ca(window.gbar.elr()),window.gbar.elc&&window.gbar.elc(a.i.ca),a.i.H(!0)),window.gbar.up.sl(a.i.B,a.i.w,p.L,a.i.R())))):google.ml(Error("apa"),!1,{cause:a.i.w+"_INIT"})}catch(t){google.ml(t,!1,{cause:a.i.w+"_INIT"})}};a.i.R=function(){var b=a.k.S(a.i.p,a.i.Q,a.i.s.C,a.i.T);return"ic="+b};})();</script> <script type="text/javascript">(function(){var sourceWebappPromoID=144002;var sourceWebappGroupID=5;var payloadType=5;var cookieMaxAgeSec=2592000;var dismissalType=5;var impressionCap=25;var gaiaXsrfToken='';var zwbkXsrfToken='';var kansasDismissalEnabled=false;var sessionIndex=0;var invisible=false;window.gbar&&gbar.up&&gbar.up.r&&gbar.up.r(payloadType,function(show){if (show){google.promos.toast.init(sourceWebappPromoID,sourceWebappGroupID,payloadType,dismissalType,cookieMaxAgeSec,impressionCap,sessionIndex,gaiaXsrfToken,zwbkXsrfToken,invisible,'0612');}
334
+ });})();</script> </div> </span><br clear="all" id="lgpd"><div id="lga"><img alt="Google" height="95" src="/images/srpr/logo9w.png" style="padding:28px 0 14px" width="269" id="hplogo" onload="window.lol&&lol()"><br><br></div><form action="/search" name="f"><table cellpadding="0" cellspacing="0"><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap=""><input name="ie" value="ISO-8859-1" type="hidden"><input value="en" name="hl" type="hidden"><input name="source" type="hidden" value="hp"><div class="ds" style="height:32px;margin:4px 0"><input style="color:#000;margin:0;padding:5px 8px 0 6px;vertical-align:top" autocomplete="off" class="lst" value="" title="Google Search" maxlength="2048" name="q" size="57"></div><br style="line-height:0"><span class="ds"><span class="lsbb"><input class="lsb" value="Google Search" name="btnG" type="submit"></span></span><span class="ds"><span class="lsbb"><input class="lsb" value="I'm Feeling Lucky" name="btnI" onclick="if(this.form.q.value)this.checked=1; else top.location='/doodles/'" type="submit"></span></span></td><td class="fl sblc" align="left" nowrap="" width="25%"><a href="/advanced_search?hl=en&amp;authuser=0">Advanced search</a><a href="/language_tools?hl=en&amp;authuser=0">Language tools</a></td></tr></table><input id="gbv" name="gbv" type="hidden" value="1"></form><div id="gac_scont"></div><div style="font-size:83%;min-height:3.5em"><br></div><span id="footer"><div style="font-size:10pt"><div style="margin:19px auto;text-align:center" id="fll"><a href="/intl/en/ads/">Advertising&nbsp;Programs</a><a href="/services/">Business Solutions</a><a href="https://plus.google.com/116899029375914044550" rel="publisher">+Google</a><a href="/intl/en/about.html">About Google</a></div></div><p style="color:#767676;font-size:8pt">&copy; 2015 - <a href="/intl/en/policies/privacy/">Privacy</a> - <a href="/intl/en/policies/terms/">Terms</a></p></span></center><div id="xjsd"></div><div id="xjsi" data-jiis="bp"><script>(function(){function c(b){window.setTimeout(function(){var a=document.createElement("script");a.src=b;document.getElementById("xjsd").appendChild(a)},0)}google.dljp=function(b,a){google.xjsu=b;c(a)};google.dlj=c;})();(function(){window.google.xjsrm=[];})();if(google.y)google.y.first=[];if(!google.xjs){window._=window._||{};window._._DumpException=function(e){throw e};if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new Date().getTime();}google.dljp('/xjs/_/js/k\x3dxjs.hp.en_US.RCXzEoiQJnk.O/m\x3dsb_he,d/rt\x3dj/d\x3d1/t\x3dzcms/rs\x3dACT90oFuEFm04ilHecN4gQdXoQjjn2nayA','/xjs/_/js/k\x3dxjs.hp.en_US.RCXzEoiQJnk.O/m\x3dsb_he,d/rt\x3dj/d\x3d1/t\x3dzcms/rs\x3dACT90oFuEFm04ilHecN4gQdXoQjjn2nayA');google.xjs=1;}google.pmc={"sb_he":{"agen":true,"cgen":true,"client":"heirloom-hp","dh":true,"ds":"","exp":"msedr","fl":true,"host":"google.com","jam":0,"jsonp":true,"msgs":{"cibl":"Clear Search","dym":"Did you mean:","lcky":"I\u0026#39;m Feeling Lucky","lml":"Learn more","oskt":"Input tools","psrc":"This search was removed from your \u003Ca href=\"/history\"\u003EWeb History\u003C/a\u003E","psrl":"Remove","sbit":"Search by image","srch":"Google Search"},"ovr":{},"pq":"","refoq":true,"refpd":true,"rfs":[],"scd":10,"sce":5,"stok":"4qawO1cBsMT0G51o9ffViqA4llo"},"d":{}};google.y.first.push(function(){if(google.med){google.med('init');google.initHistory();google.med('history');}});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);}
335
+ </script></div></body></html>
336
+ http_version:
337
+ recorded_at: Tue, 07 Apr 2015 12:36:08 GMT
338
+ recorded_with: VCR 2.9.3
@@ -26,13 +26,13 @@ RSpec.describe Muxer::Request do
26
26
  it 'has a valid method' do
27
27
  request.method = 'POST'
28
28
 
29
- expect(request.method).to eq(:POST)
29
+ expect(request.method).to eq(:post)
30
30
  end
31
31
 
32
32
  it 'does not have an invalid method' do
33
33
  request.method = "WRONG"
34
34
 
35
- expect(request.method).to eq(:GET)
35
+ expect(request.method).to eq(:get)
36
36
  end
37
37
  end
38
38
  end
data/spec/muxer_spec.rb CHANGED
@@ -3,11 +3,43 @@ require 'spec_helper'
3
3
  RSpec.describe Muxer, "execute" do
4
4
 
5
5
  it 'can make a web request' do
6
- response = Muxer.execute do |muxer|
7
- muxer.add_url "https://www.google.com"
6
+ VCR.use_cassette('muxer/makes_a_web_request') do
7
+ response = Muxer.execute do |muxer|
8
+ muxer.add_url "http://www.rubydoc.info"
9
+ end
10
+
11
+ expect(response).to be_kind_of(Hash)
12
+ expect(response[:succeeded]).to be_kind_of(Array)
8
13
  end
14
+ end
15
+
16
+ it 'can make multiple web requests' do
17
+ VCR.use_cassette('muxer/makes_multiple_web_requests') do
18
+ response = Muxer.execute do |muxer|
19
+ muxer.add_url "http://www.rubydoc.info"
20
+ muxer.add_url "https://www.google.com"
21
+ end
9
22
 
10
- expect(response).to be_kind_of(Array)
23
+ expect(response).to be_kind_of(Hash)
24
+ expect(response[:succeeded]).to be_kind_of(Array)
25
+ expect(response[:succeeded].count).to eq(2)
26
+ end
27
+ end
28
+
29
+ it 'can have a request fail' do
30
+ VCR.use_cassette('muxer/can_have_a_request_fail', :record => :new_episodes) do
31
+ response = Muxer.execute do |muxer|
32
+ muxer.add_url "http://www.rubydoc.info"
33
+ muxer.add_url "https://www.thisisabadexampledomain.com"
34
+ end
35
+
36
+ expect(response).to be_kind_of(Hash)
37
+ expect(response[:succeeded]).to be_kind_of(Array)
38
+ expect(response[:succeeded].count).to eq(1)
39
+
40
+ expect(response[:failed]).to be_kind_of(Array)
41
+ expect(response[:failed].count).to eq(1)
42
+ end
11
43
  end
12
44
 
13
45
 
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,10 @@
1
1
  require 'vcr'
2
+ require 'pry'
2
3
  require File.join(__FILE__, "..","..","lib","muxer")
4
+
5
+ require "codeclimate-test-reporter"
6
+ CodeClimate::TestReporter.start
7
+
3
8
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
4
9
  RSpec.configure do |config|
5
10
  # rspec-expectations config goes here. You can use an alternate
@@ -28,7 +33,7 @@ RSpec.configure do |config|
28
33
 
29
34
  VCR.configure do |c|
30
35
  c.cassette_library_dir = 'spec/cassettes'
31
- # c.hook_into :webmock
36
+ c.hook_into :webmock
32
37
  end
33
38
  # The settings below are suggested to provide a good initial experience
34
39
  # with RSpec, but feel free to customize to your heart's content.
@@ -49,7 +54,7 @@ RSpec.configure do |config|
49
54
 
50
55
  # This setting enables warnings. It's recommended, but in some cases may
51
56
  # be too noisy due to issues in dependencies.
52
- config.warnings = true
57
+ # config.warnings = true
53
58
 
54
59
  # Many RSpec users commonly either run the entire suite or an individual
55
60
  # file, and it's useful to allow more verbose output when running an
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muxer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris MacNaughton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-06 00:00:00.000000000 Z
11
+ date: 2015-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine
@@ -108,6 +108,34 @@ dependencies:
108
108
  - - ~>
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.10'
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1.20'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '1.20'
125
+ - !ruby/object:Gem::Dependency
126
+ name: codeclimate-test-reporter
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  description: Muxer allows timeouts to be set for each request made in addition to
112
140
  a global timeout for a set of requests.
113
141
  email:
@@ -127,6 +155,9 @@ files:
127
155
  - lib/muxer/request.rb
128
156
  - lib/muxer/version.rb
129
157
  - muxer.gemspec
158
+ - spec/cassettes/muxer/can_have_a_request_fail.yml
159
+ - spec/cassettes/muxer/makes_a_web_request.yml
160
+ - spec/cassettes/muxer/makes_multiple_web_requests.yml
130
161
  - spec/muxer/multiplexer_spec.rb
131
162
  - spec/muxer/request_spec.rb
132
163
  - spec/muxer_spec.rb
@@ -156,6 +187,9 @@ signing_key:
156
187
  specification_version: 4
157
188
  summary: Muxer is a web request multiplexer
158
189
  test_files:
190
+ - spec/cassettes/muxer/can_have_a_request_fail.yml
191
+ - spec/cassettes/muxer/makes_a_web_request.yml
192
+ - spec/cassettes/muxer/makes_multiple_web_requests.yml
159
193
  - spec/muxer/multiplexer_spec.rb
160
194
  - spec/muxer/request_spec.rb
161
195
  - spec/muxer_spec.rb