module ZendeskAPI::Associations::ClassMethods

@private

Public Class Methods

extended(klass) click to toggle source
# File lib/zendesk_api/associations.rb, line 33
def self.extended(klass)
  klass.extend Has
  klass.extend HasMany
end

Public Instance Methods

associated_with(name) click to toggle source
# File lib/zendesk_api/associations.rb, line 42
def associated_with(name)
  associations.inject([]) do |associated_with, association|
    if association[:include] == name.to_s
      associated_with.push(Association.new(association))
    end

    associated_with
  end
end
associations() click to toggle source
# File lib/zendesk_api/associations.rb, line 38
def associations
  @associations ||= []
end

Private Instance Methods

build_association(klass, resource_name, options) click to toggle source
# File lib/zendesk_api/associations.rb, line 54
def build_association(klass, resource_name, options)
  {
    :class => klass,
    :name => resource_name,
    :inline => options.delete(:inline),
    :path => options.delete(:path),
    :include => (options.delete(:include) || klass.resource_name).to_s,
    :include_key => (options.delete(:include_key) || :id).to_s,
    :singular => options.delete(:singular),
    :extensions => Array(options.delete(:extend))
  }
end
define_used(association) click to toggle source
# File lib/zendesk_api/associations.rb, line 67
def define_used(association)
  define_method "#{association[:name]}_used?" do
    !!instance_variable_get("@#{association[:name]}")
  end
end