Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mattetti/macruby-httpwrapper
simplified http wrapper for MacRuby/RubyMotion using delegation/ruby block
https://github.com/mattetti/macruby-httpwrapper
Last synced: 3 months ago
JSON representation
simplified http wrapper for MacRuby/RubyMotion using delegation/ruby block
- Host: GitHub
- URL: https://github.com/mattetti/macruby-httpwrapper
- Owner: mattetti
- Created: 2009-03-31T18:21:17.000Z (almost 16 years ago)
- Default Branch: master
- Last Pushed: 2012-01-26T04:34:17.000Z (about 13 years ago)
- Last Synced: 2024-10-31T06:50:31.623Z (3 months ago)
- Language: Ruby
- Homepage:
- Size: 214 KB
- Stars: 29
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# MacRuby HTTP Wrapper
Download helper making file download trivial.
The result of the download can be processed by a block or a delegator.
A block will always take precedence over a delegator, meaning that you can't
pass a delegator and use a block, you have to choose which approach
you want to use.
NOTE: in the case of a non blocking download, the delegation block can be called multiple times
due to a bug in Cocoa. (or maybe it's an undocumented feature ;)).## Parameters
url:: url of the resource to download
options:: options used for the query, see +MacRubyHTTP::Query.initialize+ for more details&block:: block which is called when the file is downloaded
## Options
:method:: An optional value which represents the HTTP method to use:payload:: - data to pass to a POST, PUT, DELETE query.
:delegation:: - class or instance to call when the file is downloaded.
the handle_query_response method will be called on the
passed object:save_to:: - path to save the response to
:credential:: - should contains the :user key and :password key
By default the credential will be saved for the entire session## TODO
:progress :: Proc to call everytime the downloader makes some progress
:cache_storage
## Examples
download("http://www.macruby.org/files/MacRuby%200.4.zip", {:save_to => '~/tmp/macruby.zip'.stringByStandardizingPath}) do |macruby|
NSLog("file downloaded!")
enddownload "http://macruby.org" do |mr|
# The response object has 3 accessors: status_code, headers and body
NSLog("status: #{mr.status_code}, Headers: #{mr.headers.inspect}")
end
path = File.expand_path('~/macruby_tmp.html')
window :frame => [100, 100, 500, 500], :title => "HotCocoa" do |win|
download "http://macruby.org", {:save_to => path} do |homepage|
win << label(:text => "status code: #{homepage.status_code}", :layout => {:start => false})
win << label(:text => "Headers: #{homepage.headers.inspect}", :layout => {:start => false})
end
enddownload "http://macruby.org/users/matt", :delegation => @downloaded_file, :method => 'PUT', :payload => {:name => 'matt aimonetti'}
download "http://macruby.org/roadmap.xml", :delegation => selfdownload "http://localhost:5984/couchrest-test/", :method => 'POST', :payload => '{"user":"[email protected]","zip":92129}', :delegation => self
download("http://yoursite.com/login", {:credential => {:user => 'me', :password => 's3krit'}}) do |test|
NSLog("response received: #{test.headers} #{test.status_code}")
end
# We can also do the same thing but synchronously and block the runloop
download "http://macruby.org", :immediate => true, :save_to => '~/tmp/site.html'.stringByStandardizingPath do |mr|
p "file downloaded, let's continue"
end