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:, 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:, callback_url: "", callback_dst: "", callback_type: "", mime_type: "", extra: {}) ⇒ Ferto::Response
Sends a request to Downloader and returns its reply.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/ferto/client.rb', line 65 def download(aggr_id:, aggr_limit: @aggr_limit, url:, 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, 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 |