Class: Latitude::Client::ResourceFacade

Inherits:
Object
  • Object
show all
Defined in:
lib/latitude/api/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(class_name:, config:) ⇒ ResourceFacade

Returns a new instance of ResourceFacade.



56
57
58
59
# File 'lib/latitude/api/client.rb', line 56

def initialize(class_name:, config:)
  @class_name = class_name
  @config = config
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, **kwargs, &blk) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/latitude/api/client.rb', line 65

def method_missing(name, *args, **kwargs, &blk)
  if resource_class.respond_to?(name)
    Latitude::API::APIResource.with_config(@config) do
      resource_class.public_send(name, *args, **kwargs, &blk)
    end
  else
    super
  end
end

Instance Method Details

#resource_classObject



61
62
63
# File 'lib/latitude/api/client.rb', line 61

def resource_class
  @resource_class ||= ::Object.const_get(@class_name)
end

#respond_to_missing?(name, include_private = false) ⇒ Boolean

Returns:



75
76
77
# File 'lib/latitude/api/client.rb', line 75

def respond_to_missing?(name, include_private = false)
  resource_class.respond_to?(name) || super
end