class Tikkie::Api::Resources::Base

Base class for all resources.

Attributes

config[R]
options[R]

Public Class Methods

new(config, options = {}) click to toggle source
# File lib/tikkie/api/resources/base.rb, line 10
def initialize(config, options = {})
  @config = config
  @options = options
  @body = options.delete(:body) if options.key?(:body)
end

Public Instance Methods

delete() click to toggle source
# File lib/tikkie/api/resources/base.rb, line 28
def delete
  delete_resource

  nil
end
load() click to toggle source
# File lib/tikkie/api/resources/base.rb, line 16
def load
  @response ||= load_resource

  self
end
loaded?() click to toggle source
# File lib/tikkie/api/resources/base.rb, line 34
def loaded?
  !@response.nil?
end
save(attributes = {}) click to toggle source
# File lib/tikkie/api/resources/base.rb, line 22
def save(attributes = {})
  @response = create_resource(attributes)

  self
end

Private Instance Methods

body() click to toggle source
# File lib/tikkie/api/resources/base.rb, line 52
def body
  @body ||= begin
    load unless loaded?

    @response.body
  end
end
create_resource() click to toggle source
# File lib/tikkie/api/resources/base.rb, line 44
def create_resource
  raise NotImplementedError
end
delete_resource() click to toggle source
# File lib/tikkie/api/resources/base.rb, line 48
def delete_resource
  raise NotImplementedError
end
load_resource() click to toggle source
# File lib/tikkie/api/resources/base.rb, line 40
def load_resource
  raise NotImplementedError
end
request() click to toggle source
# File lib/tikkie/api/resources/base.rb, line 60
def request
  @request ||= Tikkie::Api::Request.new(config)
end