Class: Vedeu::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.

Direct Known Subclasses

Chars, Events, Interfaces, Keys, Lines, Streams

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Vedeu::Collection.

Parameters:

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


42
43
44
45
46
# File 'lib/vedeu/repositories/collection.rb', line 42

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

Instance Attribute Details

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

Returns:



11
12
13
# File 'lib/vedeu/repositories/collection.rb', line 11

def collection
  @collection
end

#nameString

Returns:

  • (String)


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

def name
  @name
end

#parentFixnum

Returns:

  • (Fixnum)


16
17
18
# File 'lib/vedeu/repositories/collection.rb', line 16

def parent
  @parent
end

Class Method Details

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

Parameters:

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

Returns:



26
27
28
29
30
31
32
33
34
# File 'lib/vedeu/repositories/collection.rb', line 26

def self.coerce(collection = [], parent = nil, name = nil)
  if collection.is_a?(Vedeu::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)


52
53
54
# File 'lib/vedeu/repositories/collection.rb', line 52

def [](value)
  collection[value]
end

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

Adds an entry to the collection.

Parameters:

Returns:



60
61
62
# File 'lib/vedeu/repositories/collection.rb', line 60

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

#each(&block) ⇒ Enumerator

Provides iteration over the collection.

Parameters:

  • block (Proc)

Returns:

  • (Enumerator)


69
70
71
# File 'lib/vedeu/repositories/collection.rb', line 69

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

#empty?Boolean

Returns a boolean indicating whether the collection is empty.

Returns:

  • (Boolean)


76
77
78
# File 'lib/vedeu/repositories/collection.rb', line 76

def empty?
  collection.empty?
end

#sizeFixnum

Returns the size of the collection.

Returns:

  • (Fixnum)


83
84
85
# File 'lib/vedeu/repositories/collection.rb', line 83

def size
  collection.size
end

#to_sString

Returns the collection as a String.

Returns:

  • (String)


90
91
92
# File 'lib/vedeu/repositories/collection.rb', line 90

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