Class: Vedeu::Repositories::Collection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/vedeu/repositories/collection.rb

Overview

Convert an Array into an object which has some meaning in the context it is being used.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(collection = [], parent = nil, name = nil) ⇒ Vedeu::Repositories::Collection

Returns a new instance of Vedeu::Repositories::Collection.

Parameters:

  • collection (void) (defaults to: [])
  • parent (void) (defaults to: nil)
  • name (String|Symbol|NilClass) (defaults to: nil)


45
46
47
48
49
# File 'lib/vedeu/repositories/collection.rb', line 45

def initialize(collection = [], parent = nil, name = nil)
  @collection = collection
  @parent     = parent
  @name       = name
end

Instance Attribute Details

#collectionArray|Vedeu::Repositories::Collection (readonly) Also known as: all



14
15
16
# File 'lib/vedeu/repositories/collection.rb', line 14

def collection
  @collection
end

#nameString|Symbol|NilClass

Returns:

  • (String|Symbol|NilClass)


23
24
25
# File 'lib/vedeu/repositories/collection.rb', line 23

def name
  @name
end

#parentFixnum

Returns:

  • (Fixnum)


19
20
21
# File 'lib/vedeu/repositories/collection.rb', line 19

def parent
  @parent
end

Class Method Details

.coerce(collection = [], parent = nil, name = nil) ⇒ Vedeu::Repositories::Collection

Parameters:

Returns:



29
30
31
32
33
34
35
36
37
# File 'lib/vedeu/repositories/collection.rb', line 29

def self.coerce(collection = [], parent = nil, name = nil)
  if collection.is_a?(Vedeu::Repositories::Collection)
    collection

  else
    new(Array(collection), parent, name)

  end
end

Instance Method Details

#[](value) ⇒ void

This method returns an undefined value.

Fetch an entry from the collection via index.

Parameters:

  • value (Fixnum)


55
56
57
# File 'lib/vedeu/repositories/collection.rb', line 55

def [](value)
  collection[value]
end

#add(*other) ⇒ Vedeu::Repositories::Collection Also known as: <<

Adds an entry to the collection.



63
64
65
# File 'lib/vedeu/repositories/collection.rb', line 63

def add(*other)
  self.class.new(@collection += other, parent, name)
end

#each(&block) ⇒ Enumerator

Provides iteration over the collection.

Parameters:

  • block (Proc)

Returns:

  • (Enumerator)


72
73
74
# File 'lib/vedeu/repositories/collection.rb', line 72

def each(&block)
  collection.each(&block)
end

#empty?Boolean

Returns a boolean indicating whether the collection is empty.

Returns:

  • (Boolean)


79
80
81
# File 'lib/vedeu/repositories/collection.rb', line 79

def empty?
  collection.empty?
end

#eql?(other) ⇒ Boolean Also known as: ==

An object is equal when its values are the same.

Parameters:

Returns:

  • (Boolean)


87
88
89
# File 'lib/vedeu/repositories/collection.rb', line 87

def eql?(other)
  self.class == other.class && collection == other.collection
end

#sizeFixnum

Returns the size of the collection.

Returns:

  • (Fixnum)


95
96
97
# File 'lib/vedeu/repositories/collection.rb', line 95

def size
  collection.size
end

#to_sString Also known as: to_str

Returns the collection as a String.

Returns:

  • (String)


102
103
104
# File 'lib/vedeu/repositories/collection.rb', line 102

def to_s
  collection.map(&:to_s).join
end