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.

Direct Known Subclasses

Table::Operation::AlignmentSet

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: [])


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

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

Class Method Details

.[](*array) ⇒ Vector

Utility method to instantiate a Vector

Parameters:

  • *array (Array)

Returns:



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

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



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

def [](indx)
  elements[i]
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)


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

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

#each(&block) ⇒ self

Iterate over each element in the vector

Examples:

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

Returns:

  • (self)


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

def each(&block)
  return to_enum(:each) unless block_given?
  to_ary.each(&block)
  self
end

#empty?Boolean

Check if there are not elements.

Returns:

  • (Boolean)


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

def empty?
  to_ary.empty?
end

#sizeInteger

Check number of elements.

Returns:

  • (Integer)


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

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
  elements.dup
end

#to_aryObject

Convert to array

@return [Array]


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

def to_ary
  elements
end