module Acfs::Resource::Service::ClassMethods

Public Instance Methods

service(klass = nil, **options) click to toggle source

@api public

@overload service()

Return service instance.

@return [Service] Service class instance.

@overload service(klass, options = {})

Link to service this model belongs to. Connection
settings like base URL are fetched from service.
Return assigned service if no arguments are given.

@example
  class AccountService < Acfs::Client
    self.base_url = 'http://acc.serv.org'
  end

  class MyUser < Acfs::Resource
    service AccountService
  end
  MyUser.find 5 # Will fetch `http://acc.serv.org/users/5`

@param klass [Class] Service class derived from {Acfs::Service}.
@param options [Object] Option delegated to
  service class initializer.
# File lib/acfs/resource/service.rb, line 37
def service(klass = nil, **options)
  return (@service = klass.new(**options)) if klass

  @service || superclass.service
end