Class: Ferto::Client
- Inherits:
-
Object
- Object
- Ferto::Client
- Defined in:
- lib/ferto/client.rb
Instance Attribute Summary collapse
-
#aggr_limit ⇒ Fixnum
readonly
The maximum concurrent download requests that you allow the service to make.
- #connect_timeout ⇒ Fixnum readonly
- #host ⇒ String readonly
-
#path ⇒ String
readonly
The Downloader service path for enqueueing new downloads.
- #port ⇒ String readonly
- #scheme ⇒ String readonly
-
#timeout ⇒ Fixnum
readonly
The maximum time in seconds that you allow the
libcurltransfer operation to take.
Instance Method Summary collapse
-
#download(aggr_id:, aggr_limit: @aggr_limit, url:, aggr_proxy: nil, download_timeout: nil, user_agent: nil, callback_url: "", callback_dst: "", callback_type: "", mime_type: "", extra: {}) ⇒ Ferto::Response
Sends a request to Downloader and returns its reply.
-
#initialize(opts = {}) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(opts = {}) ⇒ Client
Returns a new instance of Client.
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/ferto/client.rb', line 37 def initialize(opts = {}) opts = DEFAULT_CONFIG.merge(opts) @scheme = opts[:scheme] @host = opts[:host] @path = opts[:path] @port = opts[:port] @connect_timeout = opts[:connect_timeout] @timeout = opts[:timeout] @aggr_limit = opts[:aggr_limit] end |
Instance Attribute Details
#aggr_limit ⇒ Fixnum (readonly)
Returns The maximum concurrent download requests that you allow the service to make.
27 28 29 |
# File 'lib/ferto/client.rb', line 27 def aggr_limit @aggr_limit end |
#connect_timeout ⇒ Fixnum (readonly)
19 20 21 |
# File 'lib/ferto/client.rb', line 19 def connect_timeout @connect_timeout end |
#host ⇒ String (readonly)
10 11 12 |
# File 'lib/ferto/client.rb', line 10 def host @host end |
#path ⇒ String (readonly)
Returns The Downloader service path for enqueueing new downloads.
13 14 15 |
# File 'lib/ferto/client.rb', line 13 def path @path end |
#port ⇒ String (readonly)
16 17 18 |
# File 'lib/ferto/client.rb', line 16 def port @port end |
#scheme ⇒ String (readonly)
7 8 9 |
# File 'lib/ferto/client.rb', line 7 def scheme @scheme end |
#timeout ⇒ Fixnum (readonly)
Returns The maximum time in seconds that you allow the libcurl transfer operation to take.
23 24 25 |
# File 'lib/ferto/client.rb', line 23 def timeout @timeout end |
Instance Method Details
#download(aggr_id:, aggr_limit: @aggr_limit, url:, aggr_proxy: nil, download_timeout: nil, user_agent: nil, callback_url: "", callback_dst: "", callback_type: "", mime_type: "", extra: {}) ⇒ Ferto::Response
Sends a request to Downloader and returns its reply.
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/ferto/client.rb', line 85 def download(aggr_id:, aggr_limit: @aggr_limit, url:, aggr_proxy: nil, download_timeout: nil, user_agent: nil, callback_url: "", callback_dst: "", callback_type: "", mime_type: "", extra: {}) uri = URI::HTTP.build( scheme: scheme, host: host, port: port, path: path ) body = build_body( aggr_id, aggr_limit, url, callback_url, callback_type, callback_dst, aggr_proxy, download_timeout, user_agent, mime_type, extra ) # Curl.post reuses the same handler begin res = Curl.post(uri.to_s, body.to_json) do |handle| handle.headers = build_header(aggr_id) handle.connect_timeout = connect_timeout handle.timeout = timeout end rescue Curl::Err::ConnectionFailedError => e raise Ferto::ConnectionError.new(e) end Ferto::Response.new res end |