Class: MaybeClient

Inherits:
Object
  • Object
show all
Defined in:
lib/maybe_client.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client: nil, client_class: nil, connect_params: nil) ⇒ MaybeClient

Returns a new instance of MaybeClient.



2
3
4
5
6
7
8
9
# File 'lib/maybe_client.rb', line 2

def initialize(client: nil, client_class: nil, connect_params: nil)
  @client = client
  @connect_params = connect_params
  @client_class = client_class
  @should_initialize = !!@client_class

  initialize_client if client_initialization_needed?
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object

Used to delegate everything to @client



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/maybe_client.rb', line 20

def method_missing(method, *args, &block)
  return if noop?
  initialize_client if client_initialization_needed?
  return if in_delay?

  # Raises NoMethodError
  super unless @client.respond_to? method

  result = nil

  begin
    @fail_at = nil
    result = @client.send(method, *args)
  rescue Exception => e
    handle_exception(e)
  end

  result
end

Class Method Details

.delayObject



11
12
13
# File 'lib/maybe_client.rb', line 11

def self.delay
  60
end

Instance Method Details

#respond_to?(method) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/maybe_client.rb', line 15

def respond_to? method
  !!@client && @client.respond_to?(method)
end