class Springcm::ResourceList

A list object of arbitrary SpringCM resources. Allows for easy navigation of paged resources like documents and attribute groups. All resources that are retrieved in this manner are attached to a parent object, e.g. the account for attribute groups, or a folder for documents.

Public Class Methods

new(data, parent_object, kind, client, method_override: nil) click to toggle source
Calls superclass method Springcm::Object::new
# File lib/springcm-sdk/resource_list.rb, line 7
def initialize(data, parent_object, kind, client, method_override: nil)
  @parent_object = parent_object
  @kind = kind
  @method_override = method_override
  super(data, client)
end

Public Instance Methods

first() click to toggle source
# File lib/springcm-sdk/resource_list.rb, line 22
def first
  nav_list("First")
end
items() click to toggle source
# File lib/springcm-sdk/resource_list.rb, line 30
def items
  @data.fetch("Items", []).map { |item|
    @kind.new(item, @client)
  }
end
last() click to toggle source
# File lib/springcm-sdk/resource_list.rb, line 26
def last
  nav_list("Last")
end
next() click to toggle source
# File lib/springcm-sdk/resource_list.rb, line 14
def next
  nav_list("Next")
end
prev() click to toggle source
# File lib/springcm-sdk/resource_list.rb, line 18
def prev
  nav_list("Previous")
end

Private Instance Methods

method_for_kind!(kind) click to toggle source

TODO: Better pattern for generating related links

Possibly a Springcm::DocumentVersion object?
# File lib/springcm-sdk/resource_list.rb, line 51
def method_for_kind!(kind)
  method = nil
  if !@method_override.nil?
    method = @method_override
  elsif kind == Springcm::Folder
    method = :folders
  elsif kind == Springcm::Document
    method = :documents
  elsif kind == Springcm::AttributeGroup
    method = :attribute_groups
  elsif kind == Springcm::HistoryItem
    method = :history
  elsif kind == Springcm::Group
    method = :groups
  elsif kind == Springcm::User
    method = :users
  else
    raise ArgumentError.new("Resource kind must be one of: Springcm::Document, Springcm::Folder, Springcm::AttributeGroup, Springcm::HistoryItem, Springcm::User, Springcm::Group.")
  end
  return method
end
nav_list(mode) click to toggle source