simplehttp 0.1.0 → 0.1.1
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.
- data/AUTHORS +1 -0
- data/CHANGELOG +5 -0
- data/README +24 -2
- data/Rakefile +1 -1
- data/lib/simple_http.rb +13 -2
- data/test/http_test.rb +16 -2
- data/test/http_test_server.rb +6 -0
- metadata +2 -2
    
        data/AUTHORS
    CHANGED
    
    
    
        data/CHANGELOG
    CHANGED
    
    
    
        data/README
    CHANGED
    
    | @@ -1,10 +1,30 @@ | |
| 1 | 
            -
            SimpleHttp - a simplified wrapper around Net::Http
         | 
| 1 | 
            +
            = SimpleHttp - a simplified wrapper around Net::Http
         | 
| 2 2 |  | 
| 3 3 | 
             
            SimpleHttp aims to reduce the complexity of Net::Http while providing
         | 
| 4 4 | 
             
            the most commonly used (by me) http functionality. 
         | 
| 5 5 |  | 
| 6 | 
            +
            INSTALLATION
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            * Using +gem+
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            	gem install simple_http
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            * Using +setup.rb+
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            	ruby setup.rb config
         | 
| 15 | 
            +
            	ruby setup.rb install
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            * tarball and zip packages are available from
         | 
| 18 | 
            +
              RubyForge[http://rubyforge.org/projects/simplehttp/]
         | 
| 19 | 
            +
             | 
| 20 | 
            +
             | 
| 21 | 
            +
             | 
| 6 22 | 
             
            FEATURES / USAGE
         | 
| 7 23 |  | 
| 24 | 
            +
            * Require the lib: 
         | 
| 25 | 
            +
            	
         | 
| 26 | 
            +
            	require 'simple_http'
         | 
| 27 | 
            +
             | 
| 8 28 | 
             
            * No fuss one line GET and POST requests:
         | 
| 9 29 |  | 
| 10 30 | 
             
            	str = SimpleHttp.get "http://www.example.com"
         | 
| @@ -40,7 +60,9 @@ FEATURES / USAGE | |
| 40 60 |  | 
| 41 61 | 
             
            * Access headers of the request or response
         | 
| 42 62 | 
             
            	http = SimpleHttp.new "www.example.com"
         | 
| 43 | 
            -
            	http. | 
| 63 | 
            +
            	http.request_headers["X-Custom-Header"]="useful header"	
         | 
| 64 | 
            +
            	http.get
         | 
| 65 | 
            +
            	puts "server set cookie: #{http.response_headers['set-cookie']}"
         | 
| 44 66 |  | 
| 45 67 | 
             
            * Automatically follows Http Redirects.
         | 
| 46 68 |  | 
    
        data/Rakefile
    CHANGED
    
    | @@ -98,7 +98,7 @@ RubyForgeUser="a2800276" | |
| 98 98 | 
             
            RubyForgeProject=PROJECT_NAME
         | 
| 99 99 |  | 
| 100 100 | 
             
            desc "Upload the web pages to the web."
         | 
| 101 | 
            -
            task :upload_pages => [" | 
| 101 | 
            +
            task :upload_pages => ["clean", :rdoc] do
         | 
| 102 102 | 
             
              if RubyForgeProject then
         | 
| 103 103 | 
             
                path = "/var/www/gforge-projects/#{RubyForgeProject}"
         | 
| 104 104 | 
             
                sh "scp -r doc/html/* #{RubyForgeUser}@rubyforge.org:#{path}"
         | 
    
        data/lib/simple_http.rb
    CHANGED
    
    | @@ -42,15 +42,21 @@ require 'base64' | |
| 42 42 | 
             
            #		sh.get
         | 
| 43 43 | 
             
            class SimpleHttp
         | 
| 44 44 |  | 
| 45 | 
            -
            	VERSION='0.1. | 
| 45 | 
            +
            	VERSION='0.1.1'
         | 
| 46 46 |  | 
| 47 | 
            -
            	attr_accessor :proxy_host, :proxy_port, :proxy_user, :proxy_pwd, :uri, :request_headers, :response_handlers, :follow_num_redirects
         | 
| 47 | 
            +
            	attr_accessor :proxy_host, :proxy_port, :proxy_user, :proxy_pwd, :uri, :request_headers, :response_headers, :response_handlers, :follow_num_redirects
         | 
| 48 48 |  | 
| 49 49 | 
             
            	RESPONSE_HANDLERS = {
         | 
| 50 50 | 
             
            		Net::HTTPResponse => lambda { |request, response, http| 
         | 
| 51 | 
            +
            			response.each_header {|key, value|
         | 
| 52 | 
            +
            				http.response_headers[key]=value	
         | 
| 53 | 
            +
            			}
         | 
| 51 54 | 
             
            			raise response.to_s
         | 
| 52 55 | 
             
            		},
         | 
| 53 56 | 
             
            		Net::HTTPSuccess => lambda { |request, response, http|
         | 
| 57 | 
            +
            			response.each_header {|key, value|
         | 
| 58 | 
            +
            				http.response_headers[key]=value	
         | 
| 59 | 
            +
            			}
         | 
| 54 60 | 
             
            			return response.body
         | 
| 55 61 | 
             
            		},
         | 
| 56 62 | 
             
            		Net::HTTPRedirection => lambda { |request, response, http|
         | 
| @@ -66,6 +72,10 @@ class SimpleHttp | |
| 66 72 | 
             
            			# request in case they were non standard.
         | 
| 67 73 | 
             
            			sh.response_handlers = http.response_handlers
         | 
| 68 74 |  | 
| 75 | 
            +
            			# copy the request headers
         | 
| 76 | 
            +
            			sh.request_headers=http.request_headers
         | 
| 77 | 
            +
            			sh.response_headers=http.response_headers
         | 
| 78 | 
            +
             | 
| 69 79 | 
             
            			# http doesn't permit redirects for methods
         | 
| 70 80 | 
             
            			# other than GET of HEAD, so we complain in case
         | 
| 71 81 | 
             
            			# we get them in response to a POST request. (Or
         | 
| @@ -110,6 +120,7 @@ class SimpleHttp | |
| 110 120 |  | 
| 111 121 |  | 
| 112 122 | 
             
            		@request_headers={}
         | 
| 123 | 
            +
            		@response_headers={}
         | 
| 113 124 | 
             
            		@response_handlers=RESPONSE_HANDLERS.clone
         | 
| 114 125 | 
             
            		@follow_num_redirects=3
         | 
| 115 126 |  | 
    
        data/test/http_test.rb
    CHANGED
    
    | @@ -48,6 +48,7 @@ class SimpleHttpTest < Test::Unit::TestCase | |
| 48 48 | 
             
            		ret = SimpleHttp.get uri, "query" => "query_test"
         | 
| 49 49 | 
             
            		assert_equal("query_test", ret, "basic GET (query) 4.1 test failed.");
         | 
| 50 50 |  | 
| 51 | 
            +
             | 
| 51 52 | 
             
            	end
         | 
| 52 53 |  | 
| 53 54 | 
             
            	# Tests for http GET calls implemented using instantiated SimpleHttp objects.
         | 
| @@ -69,13 +70,26 @@ class SimpleHttpTest < Test::Unit::TestCase | |
| 69 70 | 
             
            		ret = http.get "query2" => "query_test"
         | 
| 70 71 | 
             
            		assert_equal("query_test", ret, "basic GET (query) 3 test failed.")
         | 
| 71 72 |  | 
| 72 | 
            -
            		# GET  | 
| 73 | 
            +
            		# GET request with a custom request_header
         | 
| 73 74 | 
             
            		http = SimpleHttp.new "http://127.0.0.1:12345/header_test"
         | 
| 74 75 | 
             
            		http.request_headers= {'x-special-http-header'=>'my-value'}
         | 
| 75 76 | 
             
            		ret = http.get
         | 
| 76 77 | 
             
            		assert_equal("my-value", ret, "GET header test 4")
         | 
| 77 78 |  | 
| 78 | 
            -
             | 
| 79 | 
            +
            		# GET test with custom response_headers
         | 
| 80 | 
            +
            		http = SimpleHttp.new "http://127.0.0.1:12345/header_test"
         | 
| 81 | 
            +
            		http.request_headers= {'x-special-http-header'=>'resp-header-test'}
         | 
| 82 | 
            +
            		http.get
         | 
| 83 | 
            +
            		assert_equal("resp-header-test", http.response_headers['x-special-response'], "GET response header test 5")
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            		# GET test with custom request & response header and redirect
         | 
| 86 | 
            +
            		# test that request headers we set remain intact during redirects.
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            		http = SimpleHttp.new "http://127.0.0.1:12345/redirect_special_header"
         | 
| 89 | 
            +
            		http.request_headers["x-special-http-header"]='redirect_test'
         | 
| 90 | 
            +
            		http.get
         | 
| 91 | 
            +
            		assert_equal("redirect_test", http.response_headers['x-special-response'], "GET response header redirect test. 6")
         | 
| 92 | 
            +
            				
         | 
| 79 93 | 
             
            	end
         | 
| 80 94 |  | 
| 81 95 | 
             
            	# http POST calls using class methods.
         | 
    
        data/test/http_test_server.rb
    CHANGED
    
    | @@ -52,6 +52,7 @@ class TestServer | |
| 52 52 | 
             
            		# return value of request header named "X-Special-Http-Header"
         | 
| 53 53 | 
             
            		@server.mount_proc("/header_test"){|req, res|
         | 
| 54 54 | 
             
            			res.body=req.header["x-special-http-header"][0]
         | 
| 55 | 
            +
            			res['x-special-response']=req.header["x-special-http-header"][0]
         | 
| 55 56 | 
             
            		}
         | 
| 56 57 |  | 
| 57 58 | 
             
            		# return value of request header named "X-Special-Http-Header"
         | 
| @@ -86,5 +87,10 @@ class TestServer | |
| 86 87 | 
             
            			res.status=301
         | 
| 87 88 | 
             
            			res.header['location']="http://127.0.0.1:12345/test1"	
         | 
| 88 89 | 
             
            		}
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            		@server.mount_proc("/redirect_special_header") { |req, res|
         | 
| 92 | 
            +
            			res.status=301
         | 
| 93 | 
            +
            			res.header['location']="http://127.0.0.1:12345/header_test"
         | 
| 94 | 
            +
            		}
         | 
| 89 95 | 
             
            	end
         | 
| 90 96 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -3,8 +3,8 @@ rubygems_version: 0.9.0 | |
| 3 3 | 
             
            specification_version: 1
         | 
| 4 4 | 
             
            name: simplehttp
         | 
| 5 5 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 6 | 
            -
              version: 0.1. | 
| 7 | 
            -
            date: 2007-02- | 
| 6 | 
            +
              version: 0.1.1
         | 
| 7 | 
            +
            date: 2007-02-09 00:00:00 +01:00
         | 
| 8 8 | 
             
            summary: "simple_http: Simple Http client lib."
         | 
| 9 9 | 
             
            require_paths: 
         | 
| 10 10 | 
             
            - lib
         |