Class: TTY::Vector

Inherits:
Object
  • Object
show all
Includes:
Enumerable, Conversion, Equatable
Defined in:
lib/tty/vector.rb

Overview

This class represents a mathematical vector.

Instance Attribute Summary

Attributes included from Equatable

#comparison_attrs

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Equatable

#attr_reader, included, #inherited

Methods included from Conversion

#convert_to_array

Constructor Details

#initialize(array = []) ⇒ undefined

Instantiate a Vector

Parameters:

  • array (Array) (defaults to: [])


29
30
31
# File 'lib/tty/vector.rb', line 29

def initialize(array = [])
  @elements = convert_to_array(array)
end

Class Method Details

.[](*array) ⇒ Vector

Utility method to instantiate a Vector

Parameters:

  • *array (Array)

Returns:



18
19
20
# File 'lib/tty/vector.rb', line 18

def self.[](*array)
  new convert_to_array(array)
end

Instance Method Details

#[](indx) ⇒ Object Also known as: at, element

Return element at index.

Parameters:

  • indx (Integer)

    index of an element

Returns:

  • (Object)

    a value of an element



42
43
44
# File 'lib/tty/vector.rb', line 42

def [](indx)
  elements[indx]
end

#[]=(indx, value) ⇒ Object Also known as: set_element

Set a value of the element for the given index.

Parameters:

  • indx (Integer)

    an index of an element

  • value (Object)

    a value to be set

Returns:

  • (Object)


59
60
61
# File 'lib/tty/vector.rb', line 59

def []=(indx, value)
  elements[indx] = value
end

#eachself

Iterate over each element in the vector

Examples:

vec = Vector[1,2,3]
vec.each { |element| ... }

Returns:

  • (self)


73
74
75
76
77
# File 'lib/tty/vector.rb', line 73

def each
  return to_enum unless block_given?
  to_ary.each { |element| yield element }
  self
end

#empty?Boolean

Check if there are not elements.

Returns:

  • (Boolean)


93
94
95
# File 'lib/tty/vector.rb', line 93

def empty?
  to_ary.empty?
end

#sizeInteger Also known as: length

Check number of elements.

Returns:

  • (Integer)


102
103
104
# File 'lib/tty/vector.rb', line 102

def size
  to_ary.size
end

#to_aArray

Return the vector elements in an array.

Returns:

  • (Array)


112
113
114
# File 'lib/tty/vector.rb', line 112

def to_a
  to_ary.dup
end

#to_aryObject

Convert to array

@return [Array]


84
85
86
# File 'lib/tty/vector.rb', line 84

def to_ary
  @elements
end