Class: Rubeetup::Requester

Inherits:
Object
  • Object
show all
Includes:
Utilities
Defined in:
lib/rubeetup/requester.rb

Overview

Requester instances perform requests for the user

Author:

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utilities

#blank?, #collection_symbolyzer, #present?, #stringify

Constructor Details

#initialize(args) ⇒ Requester

Returns a new instance of Requester.

Parameters:

  • args (Hash{Symbol=>String})

    holds auth data to send with each request

Options Hash (args):

  • :key (String)

    the api key



24
25
26
27
# File 'lib/rubeetup/requester.rb', line 24

def initialize(args)
  self.auth = args
  @request_builder = Rubeetup::RequestBuilder
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args) ⇒ Array<Rubeetup::ResponseWrapper>

Performs the actual request, by dynamically creating a Request instance, and by then executing it.

Parameters:

  • name (Symbol)

    request name

  • args (Array<Hash{Symbol=>String}, ...>)

    holds the request options

Returns:



49
50
51
52
53
# File 'lib/rubeetup/requester.rb', line 49

def method_missing(name, *args)
  merge_auth(args)
  request = request_builder.compose_request(name, args)
  request.execute
end

Instance Attribute Details

#authHash{Symbol=>String}

Returns this Requester’s auth data.

Returns:

  • (Hash{Symbol=>String})

    this Requester’s auth data



13
14
15
# File 'lib/rubeetup/requester.rb', line 13

def auth
  @auth
end

#request_builderSymbol (readonly)

Returns the chosen request builder.

Returns:

  • (Symbol)

    the chosen request builder



18
19
20
# File 'lib/rubeetup/requester.rb', line 18

def request_builder
  @request_builder
end