Class: InstanceId::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/instance_id/request.rb,
lib/instance_id/request/delete.rb,
lib/instance_id/request/get_info.rb,
lib/instance_id/request/batch_operation.rb

Direct Known Subclasses

BatchOperation, Delete, GetInfo

Defined Under Namespace

Classes: BatchOperation, Delete, GetInfo

Instance Method Summary collapse

Constructor Details

#initialize(*args, **options) {|connector| ... } ⇒ Request

Returns a new instance of Request.

Yields:

  • (connector)


3
4
5
# File 'lib/instance_id/request.rb', line 3

def initialize(*args, **options)
  yield(connector) if block_given?
end

Instance Method Details

#endpointObject

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/instance_id/request.rb', line 14

def endpoint
  raise NotImplementedError, "concrete classes should implement #{__method__}."
end

#invokeObject



7
8
9
10
11
12
# File 'lib/instance_id/request.rb', line 7

def invoke
  response = connector.send(method, endpoint) do |request|
    yield(request) if block_given?
  end
  parse response
end

#methodObject

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/instance_id/request.rb', line 18

def method
  raise NotImplementedError, "concrete classes should implement #{__method__}, returning one of #{%i(get post put patch delete)}."
end

#response_classObject

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/instance_id/request.rb', line 22

def response_class
  raise NotImplementedError, "concrete classes should implement #{__method__}, returning concrete class of InstanceId::Response"
end