module Ethon::Easies::Options
def self.included(base)
def self.included(base) base.extend ClassMethods base.const_set(:AVAILABLE_OPTIONS, [ :dns_cache_timeout, :httppost, :put, :httpget, :nobody, :upload, :customrequest, :cainfo, :capath, :connecttimeout, :followlocation, :httpauth, :infilesize, :interface, :maxredirs, :nosignal, :postfieldsize, :copypostfields, :proxy, :proxyauth, :proxytype, :timeout, :readdata, :sslcert, :ssl_verifypeer, :ssl_verifyhost, :sslcerttype, :sslkey, :sslkeytype, :sslversion, :url, :useragent, :userpwd, :verbose, :readfunction ]) base.send(:attr_accessor, *Ethon::Easy::AVAILABLE_OPTIONS) end
def set_options
- Example: Set options. -
def set_options self.class.available_options.each do |option| value = value_for(option) next if value.nil? Curl.set_option(option, value, handle) end end
def value_for(option)
-
(Object)
- The casted value.
Other tags:
- Example: Return casted the value. -
def value_for(option) value = method(option).call return nil if value.nil? if self.class.bool_options.include?(option) value ? 1 : 0 elsif self.class.enum_options.key?(option) self.class.enum_options[option][value] elsif self.class.int_options.include?(option) value.to_i elsif value.is_a?(::String) Util.escape_zero_byte(value) else value end end