Class: Gibbon::Request
- Inherits:
- 
      Object
      
        - Object
- Gibbon::Request
 
- Defined in:
- lib/gibbon/request.rb
Constant Summary collapse
- DEFAULT_TIMEOUT =
- 60
- DEFAULT_OPEN_TIMEOUT =
- 60
Class Attribute Summary collapse
- 
  
    
      .api_endpoint  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute api_endpoint. 
- 
  
    
      .api_key  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute api_key. 
- 
  
    
      .debug  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute debug. 
- 
  
    
      .faraday_adapter  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute faraday_adapter. 
- 
  
    
      .logger  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute logger. 
- 
  
    
      .open_timeout  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute open_timeout. 
- 
  
    
      .proxy  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute proxy. 
- 
  
    
      .symbolize_keys  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute symbolize_keys. 
- 
  
    
      .timeout  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute timeout. 
Instance Attribute Summary collapse
- 
  
    
      #api_endpoint  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute api_endpoint. 
- 
  
    
      #api_key  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute api_key. 
- 
  
    
      #debug  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute debug. 
- 
  
    
      #faraday_adapter  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute faraday_adapter. 
- 
  
    
      #logger  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute logger. 
- 
  
    
      #open_timeout  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute open_timeout. 
- 
  
    
      #proxy  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute proxy. 
- 
  
    
      #symbolize_keys  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute symbolize_keys. 
- 
  
    
      #timeout  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute timeout. 
Class Method Summary collapse
- .method_missing(sym, *args, &block) ⇒ Object
- .respond_to_missing?(method_name, include_private = false) ⇒ Boolean
Instance Method Summary collapse
- #create(params: nil, headers: nil, body: nil) ⇒ Object
- #delete(params: nil, headers: nil) ⇒ Object
- #get(params: nil, headers: nil) ⇒ Object
- 
  
    
      #initialize(api_key: nil, api_endpoint: nil, timeout: nil, open_timeout: nil, proxy: nil, faraday_adapter: nil, symbolize_keys: false, debug: false, logger: nil)  ⇒ Request 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Request. 
- #method_missing(method, *args) ⇒ Object
- #path ⇒ Object
- #respond_to_missing?(method_name, include_private = false) ⇒ Boolean
- #retrieve(params: nil, headers: nil) ⇒ Object
- #send(*args) ⇒ Object
- #update(params: nil, headers: nil, body: nil) ⇒ Object
- #upsert(params: nil, headers: nil, body: nil) ⇒ Object
Constructor Details
#initialize(api_key: nil, api_endpoint: nil, timeout: nil, open_timeout: nil, proxy: nil, faraday_adapter: nil, symbolize_keys: false, debug: false, logger: nil) ⇒ Request
Returns a new instance of Request.
| 8 9 10 11 12 13 14 15 16 17 18 19 20 | # File 'lib/gibbon/request.rb', line 8 def initialize(api_key: nil, api_endpoint: nil, timeout: nil, open_timeout: nil, proxy: nil, faraday_adapter: nil, symbolize_keys: false, debug: false, logger: nil) @path_parts = [] @api_key = api_key || self.class.api_key || ENV['MAILCHIMP_API_KEY'] @api_key = @api_key.strip if @api_key @api_endpoint = api_endpoint || self.class.api_endpoint @timeout = timeout || self.class.timeout || DEFAULT_TIMEOUT @open_timeout = open_timeout || self.class.open_timeout || DEFAULT_OPEN_TIMEOUT @proxy = proxy || self.class.proxy || ENV['MAILCHIMP_PROXY'] @faraday_adapter = faraday_adapter || self.class.faraday_adapter || Faraday.default_adapter @symbolize_keys = symbolize_keys || self.class.symbolize_keys || false @debug = debug || self.class.debug || false @logger = logger || self.class.logger || ::Logger.new(STDOUT) end | 
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
| 22 23 24 25 26 27 28 | # File 'lib/gibbon/request.rb', line 22 def method_missing(method, *args) # To support underscores, we replace them with hyphens when calling the API @path_parts << method.to_s.gsub("_", "-").downcase @path_parts << args if args.length > 0 @path_parts.flatten! self end | 
Class Attribute Details
.api_endpoint ⇒ Object
Returns the value of attribute api_endpoint.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def api_endpoint @api_endpoint end | 
.api_key ⇒ Object
Returns the value of attribute api_key.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def api_key @api_key end | 
.debug ⇒ Object
Returns the value of attribute debug.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def debug @debug end | 
.faraday_adapter ⇒ Object
Returns the value of attribute faraday_adapter.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def faraday_adapter @faraday_adapter end | 
.logger ⇒ Object
Returns the value of attribute logger.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def logger @logger end | 
.open_timeout ⇒ Object
Returns the value of attribute open_timeout.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def open_timeout @open_timeout end | 
.proxy ⇒ Object
Returns the value of attribute proxy.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def proxy @proxy end | 
.symbolize_keys ⇒ Object
Returns the value of attribute symbolize_keys.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def symbolize_keys @symbolize_keys end | 
.timeout ⇒ Object
Returns the value of attribute timeout.
| 87 88 89 | # File 'lib/gibbon/request.rb', line 87 def timeout @timeout end | 
Instance Attribute Details
#api_endpoint ⇒ Object
Returns the value of attribute api_endpoint.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def api_endpoint @api_endpoint end | 
#api_key ⇒ Object
Returns the value of attribute api_key.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def api_key @api_key end | 
#debug ⇒ Object
Returns the value of attribute debug.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def debug @debug end | 
#faraday_adapter ⇒ Object
Returns the value of attribute faraday_adapter.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def faraday_adapter @faraday_adapter end | 
#logger ⇒ Object
Returns the value of attribute logger.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def logger @logger end | 
#open_timeout ⇒ Object
Returns the value of attribute open_timeout.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def open_timeout @open_timeout end | 
#proxy ⇒ Object
Returns the value of attribute proxy.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def proxy @proxy end | 
#symbolize_keys ⇒ Object
Returns the value of attribute symbolize_keys.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def symbolize_keys @symbolize_keys end | 
#timeout ⇒ Object
Returns the value of attribute timeout.
| 3 4 5 | # File 'lib/gibbon/request.rb', line 3 def timeout @timeout end | 
Class Method Details
.method_missing(sym, *args, &block) ⇒ Object
| 89 90 91 | # File 'lib/gibbon/request.rb', line 89 def method_missing(sym, *args, &block) new(api_key: self.api_key, api_endpoint: self.api_endpoint, timeout: self.timeout, open_timeout: self.open_timeout, faraday_adapter: self.faraday_adapter, symbolize_keys: self.symbolize_keys, debug: self.debug, proxy: self.proxy, logger: self.logger).send(sym, *args, &block) end | 
.respond_to_missing?(method_name, include_private = false) ⇒ Boolean
| 93 94 95 | # File 'lib/gibbon/request.rb', line 93 def respond_to_missing?(method_name, include_private = false) true end | 
Instance Method Details
#create(params: nil, headers: nil, body: nil) ⇒ Object
| 46 47 48 49 50 | # File 'lib/gibbon/request.rb', line 46 def create(params: nil, headers: nil, body: nil) APIRequest.new(builder: self).post(params: params, headers: headers, body: body) ensure reset end | 
#delete(params: nil, headers: nil) ⇒ Object
| 74 75 76 77 78 | # File 'lib/gibbon/request.rb', line 74 def delete(params: nil, headers: nil) APIRequest.new(builder: self).delete(params: params, headers: headers) ensure reset end | 
#get(params: nil, headers: nil) ⇒ Object
| 64 65 66 | # File 'lib/gibbon/request.rb', line 64 def get(params: nil, headers: nil) retrieve(params: params, headers: headers) end | 
#path ⇒ Object
| 42 43 44 | # File 'lib/gibbon/request.rb', line 42 def path @path_parts.join('/') end | 
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
| 30 31 32 | # File 'lib/gibbon/request.rb', line 30 def respond_to_missing?(method_name, include_private = false) true end | 
#retrieve(params: nil, headers: nil) ⇒ Object
| 68 69 70 71 72 | # File 'lib/gibbon/request.rb', line 68 def retrieve(params: nil, headers: nil) APIRequest.new(builder: self).get(params: params, headers: headers) ensure reset end | 
#send(*args) ⇒ Object
| 34 35 36 37 38 39 40 | # File 'lib/gibbon/request.rb', line 34 def send(*args) if args.length == 0 method_missing(:send, args) else __send__(*args) end end | 
#update(params: nil, headers: nil, body: nil) ⇒ Object
| 52 53 54 55 56 | # File 'lib/gibbon/request.rb', line 52 def update(params: nil, headers: nil, body: nil) APIRequest.new(builder: self).patch(params: params, headers: headers, body: body) ensure reset end | 
#upsert(params: nil, headers: nil, body: nil) ⇒ Object
| 58 59 60 61 62 | # File 'lib/gibbon/request.rb', line 58 def upsert(params: nil, headers: nil, body: nil) APIRequest.new(builder: self).put(params: params, headers: headers, body: body) ensure reset end |