class FreshdeskApiclient::REST::Client

Constants

RESOURCES

Public Class Methods

new(domain: FreshdeskApiclient.domain, username_or_api_key: FreshdeskApiclient.username_or_api_key, password: FreshdeskApiclient.password, logger: FreshdeskApiclient.logger) click to toggle source

@param [String] domain @param [String] username_or_api_key @param [String] password @param [Logger] logger

# File lib/freshdesk_apiclient/rest/client.rb, line 17
def initialize(domain: FreshdeskApiclient.domain,
               username_or_api_key: FreshdeskApiclient.username_or_api_key,
               password: FreshdeskApiclient.password, logger: FreshdeskApiclient.logger)
  @base_url = "https://#{domain}.freshdesk.com/api/v2/"
  @credentials = {user: username_or_api_key, password: password}
  @logger = logger
end

Public Instance Methods

method_missing(symbol, *arguments, &block) click to toggle source

obj.method_missing(symbol [, *args] ) -> result

Calls superclass method
# File lib/freshdesk_apiclient/rest/client.rb, line 26
def method_missing(symbol, *arguments, &block)
  RESOURCES.include?(symbol) ? instance_variable(symbol) : super
end
respond_to_missing?(method, *) click to toggle source
Calls superclass method
# File lib/freshdesk_apiclient/rest/client.rb, line 30
def respond_to_missing?(method, *)
  RESOURCES.include?(method) ? true : super
end

Private Instance Methods

as_ivar(name) click to toggle source
# File lib/freshdesk_apiclient/rest/client.rb, line 50
def as_ivar(name)
  "@#{name.downcase}"
end
get_set_ivar(class_name, ivar) click to toggle source
# File lib/freshdesk_apiclient/rest/client.rb, line 41
def get_set_ivar(class_name, ivar)
  instance_variable_defined?(ivar) ? instance_variable_get(ivar) : set(ivar, class_name)
end
instance_variable(symbol) click to toggle source
# File lib/freshdesk_apiclient/rest/client.rb, line 36
def instance_variable(symbol)
  class_name = FreshdeskApiclient::Utils::Camelizable.camelize symbol
  get_set_ivar class_name, as_ivar(class_name)
end
set(ivar, class_name) click to toggle source
# File lib/freshdesk_apiclient/rest/client.rb, line 45
def set(ivar, class_name)
  obj = ModelFactory.new.instantiate class_name, @base_url, credentials: @credentials, logger: logger
  instance_variable_set ivar, obj
end