Class: Restify::Collection

Inherits:
Object
  • Object
show all
Includes:
Relations
Defined in:
lib/restify/collection.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Relations

#rel, #rel?, #relations

Constructor Details

#initialize(client, relations = {}, items = []) ⇒ Collection

Returns a new instance of Collection.



54
55
56
57
58
# File 'lib/restify/collection.rb', line 54

def initialize(client, relations = {}, items = [])
  @client     = client
  @relations  = HashWithIndifferentAccess.new relations
  @items      = Array items
end

Class Method Details

.create(client, data, response) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/restify/collection.rb', line 61

def create(client, data, response)
  data = data.map do |value|
    case value
      when Hash
        Resource.create client, value, nil
      when Array
        create client, value, nil
      else
        value
    end
  end

  relations = response ? response.relations(client) : nil

  new client, relations, data
end

Instance Method Details

#[](index) ⇒ Object

Retrieve value for given index.

Parameters:

  • index (Integer)

    Index.

Returns:

  • (Object)

    Data value for given index.



12
# File 'lib/restify/collection.rb', line 12

delegate :[], to: :items

#each {|item| ... } ⇒ Object #eachEnumerator

Iterate over all items or return enumerator.

Overloads:

  • #each {|item| ... } ⇒ Object

    Calls block once for each item, passing the item as parameters.

    Yields:

    • (item)

      Yield for each item.

    Yield Parameters:

  • #eachEnumerator

    Return enumerator for each item.

    Returns:

    • (Enumerator)

      Enumerator for each item.



44
# File 'lib/restify/collection.rb', line 44

delegate :each, to: :items

#firstResource, ...

Return first item of collection.

Returns:



27
# File 'lib/restify/collection.rb', line 27

delegate :first, to: :items

#itemsArray

Return parsed resource attributes as hash.

Returns:

  • (Array)

    Collection items.



50
51
52
# File 'lib/restify/collection.rb', line 50

def items
  @items ||= []
end

#sizeInteger

Return size of collection. Only includes size of current page in paginated resources.

Returns:

  • (Integer)

    Number of items in current collection.



20
# File 'lib/restify/collection.rb', line 20

delegate :size, to: :items