document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-209380\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"c1\"># Record HTTP is to help recording the http calls for further testing<\/span><\/div><div class=\"line\" id=\"LC2\"><span class=\"c1\">#<\/span><\/div><div class=\"line\" id=\"LC3\"><span class=\"c1\"># usage: <\/span><\/div><div class=\"line\" id=\"LC4\"><span class=\"c1\">#   require &#39;record_http&#39;<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"c1\"># set up the directory it needs to save the responses<\/span><\/div><div class=\"line\" id=\"LC6\"><span class=\"c1\">#   RecordHttp.save_path = &#39;../spec/data&#39;<\/span><\/div><div class=\"line\" id=\"LC7\"><span class=\"c1\">#   RecordHttp.include_headers = true<\/span><\/div><div class=\"line\" id=\"LC8\"><span class=\"c1\">#   RecordHttp.file_prefix = &#39;http_&#39;<\/span><\/div><div class=\"line\" id=\"LC9\"><span class=\"c1\">#<\/span><\/div><div class=\"line\" id=\"LC10\"><span class=\"c1\"># Run your net http requests, tests, gems that use net/http and watch everything save away!<\/span><\/div><div class=\"line\" id=\"LC11\"><span class=\"c1\">#   Net::HTTP.get(URI.parse(&quot;http://localhost&quot;))<\/span><\/div><div class=\"line\" id=\"LC12\"><span class=\"nb\">require<\/span> <span class=\"s1\">&#39;net/http&#39;<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;<\/div><div class=\"line\" id=\"LC14\"><span class=\"k\">module<\/span> <span class=\"nn\">RecordHttp<\/span><\/div><div class=\"line\" id=\"LC15\">&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC16\">&nbsp;&nbsp;<span class=\"vc\">@@save_path<\/span> <span class=\"o\">=<\/span> <span class=\"kp\">nil<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;<span class=\"vc\">@@include_headers<\/span> <span class=\"o\">=<\/span> <span class=\"kp\">false<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;<span class=\"vc\">@@file_prefix<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&quot;http_&quot;<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">save_path<\/span> <\/div><div class=\"line\" id=\"LC21\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"vc\">@@save_path<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC24\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">save_path<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"n\">save_path<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC25\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"vc\">@@save_path<\/span> <span class=\"o\">=<\/span> <span class=\"n\">save_path<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC28\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">include_headers<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"n\">include_headers<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"vc\">@@include_headers<\/span> <span class=\"o\">=<\/span> <span class=\"n\">include_headers<\/span><\/div><div class=\"line\" id=\"LC30\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC31\">&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC32\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">file_prefix<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"n\">file_prefix<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC33\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"vc\">@@file_prefix<\/span> <span class=\"o\">=<\/span> <span class=\"n\">file_prefix<\/span><\/div><div class=\"line\" id=\"LC34\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC35\">&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC36\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">save_res<\/span><span class=\"p\">(<\/span><span class=\"n\">address<\/span><span class=\"p\">,<\/span><span class=\"n\">req<\/span><span class=\"p\">,<\/span><span class=\"n\">res<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC37\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">pathname<\/span> <span class=\"o\">=<\/span> <span class=\"n\">req<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">gsub<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;/&quot;<\/span><span class=\"p\">,<\/span><span class=\"s2\">&quot;_&quot;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC38\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">filename<\/span> <span class=\"o\">=<\/span> <span class=\"vc\">@@save_path<\/span><span class=\"o\">+<\/span><span class=\"s2\">&quot;/&quot;<\/span><span class=\"o\">+<\/span><span class=\"vc\">@@file_prefix<\/span> <span class=\"o\">+<\/span> <span class=\"n\">address<\/span> <span class=\"o\">+<\/span> <span class=\"p\">(<\/span><span class=\"n\">pathname<\/span> <span class=\"p\">?<\/span> <span class=\"s2\">&quot;&quot;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">pathname<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC39\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"no\">File<\/span><span class=\"o\">.<\/span><span class=\"n\">open<\/span><span class=\"p\">(<\/span><span class=\"n\">filename<\/span><span class=\"p\">,<\/span><span class=\"s2\">&quot;w&quot;<\/span><span class=\"p\">)<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">file<\/span><span class=\"o\">|<\/span><\/div><div class=\"line\" id=\"LC40\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"vc\">@@include_headers<\/span><\/div><div class=\"line\" id=\"LC41\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">file<\/span><span class=\"o\">.<\/span><span class=\"n\">write<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;HTTP/<\/span><span class=\"si\">#{<\/span><span class=\"n\">res<\/span><span class=\"o\">.<\/span><span class=\"n\">http_version<\/span><span class=\"si\">}<\/span><span class=\"s2\"> <\/span><span class=\"si\">#{<\/span><span class=\"n\">res<\/span><span class=\"o\">.<\/span><span class=\"n\">code<\/span><span class=\"si\">}<\/span><span class=\"s2\"> <\/span><span class=\"si\">#{<\/span><span class=\"n\">res<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"si\">}<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">&quot;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC42\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">res<\/span><span class=\"o\">.<\/span><span class=\"n\">to_hash<\/span><span class=\"o\">.<\/span><span class=\"n\">each<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">key<\/span><span class=\"p\">,<\/span><span class=\"n\">value<\/span><span class=\"o\">|<\/span><\/div><div class=\"line\" id=\"LC43\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">file<\/span><span class=\"o\">.<\/span><span class=\"n\">write<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;<\/span><span class=\"si\">#{<\/span><span class=\"n\">key<\/span><span class=\"o\">.<\/span><span class=\"n\">capitalize<\/span><span class=\"si\">}<\/span><span class=\"s2\">: <\/span><span class=\"si\">#{<\/span><span class=\"n\">value<\/span><span class=\"si\">}<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">&quot;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC44\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC45\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">file<\/span><span class=\"o\">.<\/span><span class=\"n\">write<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">&quot;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC46\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC47\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">file<\/span><span class=\"o\">.<\/span><span class=\"n\">write<\/span><span class=\"p\">(<\/span><span class=\"n\">res<\/span><span class=\"o\">.<\/span><span class=\"n\">body<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC48\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC49\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"nb\">puts<\/span> <span class=\"s2\">&quot;Saved file <\/span><span class=\"si\">#{<\/span><span class=\"n\">filename<\/span><span class=\"si\">}<\/span><span class=\"s2\"> with response from http://<\/span><span class=\"si\">#{<\/span><span class=\"n\">address<\/span><span class=\"si\">}#{<\/span><span class=\"n\">req<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"si\">}<\/span><span class=\"s2\">&quot;<\/span><\/div><div class=\"line\" id=\"LC50\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC51\">&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC52\"><span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC53\">&nbsp;<\/div><div class=\"line\" id=\"LC54\"><span class=\"c1\"># set save path<\/span><\/div><div class=\"line\" id=\"LC55\"><span class=\"no\">RecordHttp<\/span><span class=\"o\">.<\/span><span class=\"n\">save_path<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;../spec/data&#39;<\/span><\/div><div class=\"line\" id=\"LC56\"><span class=\"no\">RecordHttp<\/span><span class=\"o\">.<\/span><span class=\"n\">include_headers<\/span> <span class=\"o\">=<\/span> <span class=\"kp\">false<\/span><\/div><div class=\"line\" id=\"LC57\"><span class=\"no\">RecordHttp<\/span><span class=\"o\">.<\/span><span class=\"n\">file_prefix<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;http_&#39;<\/span><\/div><div class=\"line\" id=\"LC58\">&nbsp;<\/div><div class=\"line\" id=\"LC59\"><span class=\"c1\"># override Net::Http at request level to get post / get / put / etc<\/span><\/div><div class=\"line\" id=\"LC60\"><span class=\"k\">module<\/span> <span class=\"nn\">Net<\/span><\/div><div class=\"line\" id=\"LC61\">&nbsp;&nbsp;<span class=\"k\">class<\/span> <span class=\"nc\">HTTP<\/span><\/div><div class=\"line\" id=\"LC62\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">alias<\/span> <span class=\"ss\">:old_request<\/span> <span class=\"ss\">:request<\/span><\/div><div class=\"line\" id=\"LC63\">&nbsp;&nbsp;&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC64\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">request<\/span><span class=\"p\">(<\/span><span class=\"n\">req<\/span><span class=\"p\">,<\/span> <span class=\"n\">body<\/span> <span class=\"o\">=<\/span> <span class=\"kp\">nil<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">block<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC65\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">res<\/span> <span class=\"o\">=<\/span> <span class=\"n\">old_request<\/span><span class=\"p\">(<\/span><span class=\"n\">req<\/span><span class=\"p\">,<\/span> <span class=\"n\">body<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">block<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC66\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">begin<\/span><\/div><div class=\"line\" id=\"LC67\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"no\">RecordHttp<\/span><span class=\"o\">.<\/span><span class=\"n\">save_res<\/span><span class=\"p\">(<\/span><span class=\"vi\">@address<\/span><span class=\"p\">,<\/span><span class=\"n\">req<\/span><span class=\"p\">,<\/span><span class=\"n\">res<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC68\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">rescue<\/span><\/div><div class=\"line\" id=\"LC69\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"nb\">puts<\/span> <span class=\"s2\">&quot;Error saving response <\/span><span class=\"si\">#{<\/span><span class=\"vg\">$!<\/span><span class=\"si\">}<\/span><span class=\"s2\">&quot;<\/span><\/div><div class=\"line\" id=\"LC70\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC71\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">res<\/span><\/div><div class=\"line\" id=\"LC72\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC73\">&nbsp;&nbsp;&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC74\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC75\"><span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC76\">&nbsp;<\/div><div class=\"line\" id=\"LC77\"><span class=\"c1\"># Just run Net::Http<\/span><\/div><div class=\"line\" id=\"LC78\"><span class=\"c1\">#puts Net::HTTP.get(URI.parse(&quot;http://localhost&quot;))<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/209380/defd58e77aa2ddec51c6fd08afdd28ccb9c185e3/gistfile1.rb\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/209380#file_gistfile1.rb\" style=\"float:right;margin-right:10px;color:#666\">gistfile1.rb<\/a>\n          <a href=\"http://gist.github.com/209380\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
