Class: Vedeu::Model::Collection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/vedeu/models/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::Model::Collection

Parameters:

  • collection (defaults to: [])
  • parent (defaults to: nil)
  • name (defaults to: nil)


32
33
34
35
36
# File 'lib/vedeu/models/collection.rb', line 32

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

Instance Attribute Details

#nameObject

Returns the value of attribute name.



12
13
14
# File 'lib/vedeu/models/collection.rb', line 12

def name
  @name
end

#parentObject

Returns the value of attribute parent.



12
13
14
# File 'lib/vedeu/models/collection.rb', line 12

def parent
  @parent
end

Class Method Details

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

Parameters:

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

Returns:



18
19
20
21
22
23
24
25
26
# File 'lib/vedeu/models/collection.rb', line 18

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

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

  end
end

Instance Method Details

#[](value) ⇒ void

This method returns an undefined value.

Parameters:



40
41
42
# File 'lib/vedeu/models/collection.rb', line 40

def [](value)
  @collection[value]
end

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

Parameters:

Returns:



46
47
48
# File 'lib/vedeu/models/collection.rb', line 46

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

#allArray

Returns:

  • (Array)


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

def all
  @collection
end

#each(&block) ⇒ Enumerator

Parameters:

  • block (Proc)

Returns:

  • (Enumerator)


58
59
60
# File 'lib/vedeu/models/collection.rb', line 58

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

#empty?Boolean

Returns:

  • (Boolean)


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

def empty?
  @collection.empty?
end

#sizeFixnum

Returns:



68
69
70
# File 'lib/vedeu/models/collection.rb', line 68

def size
  @collection.size
end

#to_sString

Returns:

  • (String)


73
74
75
# File 'lib/vedeu/models/collection.rb', line 73

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