Class: VectorSpace::SimpleVector
- Inherits:
-
Object
- Object
- VectorSpace::SimpleVector
- Includes:
- Enumerable, VectorSpace
- Defined in:
- lib/vector_space/simple_vector.rb
Direct Known Subclasses
Class Attribute Summary collapse
-
.description_prefix ⇒ Object
readonly
Returns the value of attribute description_prefix.
-
.description_suffix ⇒ Object
readonly
Returns the value of attribute description_suffix.
-
.zero_description ⇒ Object
readonly
Returns the value of attribute zero_description.
Class Method Summary collapse
- .description_separator ⇒ Object
- .has_description_prefix(description_prefix) ⇒ Object
- .has_description_separator(description_separator) ⇒ Object
- .has_description_suffix(description_suffix) ⇒ Object
- .has_dimension(dimension, attributes = {}) ⇒ Object
- .has_zero_description(zero_description) ⇒ Object
Instance Method Summary collapse
- #[](component) ⇒ Object
- #each ⇒ Object
-
#initialize(attributes = {}) ⇒ SimpleVector
constructor
A new instance of SimpleVector.
- #to_s ⇒ Object
Methods included from VectorSpace
Constructor Details
#initialize(attributes = {}) ⇒ SimpleVector
Returns a new instance of SimpleVector.
7 8 9 |
# File 'lib/vector_space/simple_vector.rb', line 7 def initialize(attributes = {}) @attributes = attributes end |
Class Attribute Details
.description_prefix ⇒ Object (readonly)
Returns the value of attribute description_prefix.
41 42 43 |
# File 'lib/vector_space/simple_vector.rb', line 41 def description_prefix @description_prefix end |
.description_suffix ⇒ Object (readonly)
Returns the value of attribute description_suffix.
41 42 43 |
# File 'lib/vector_space/simple_vector.rb', line 41 def description_suffix @description_suffix end |
.zero_description ⇒ Object (readonly)
Returns the value of attribute zero_description.
41 42 43 |
# File 'lib/vector_space/simple_vector.rb', line 41 def zero_description @zero_description end |
Class Method Details
.description_separator ⇒ Object
65 66 67 |
# File 'lib/vector_space/simple_vector.rb', line 65 def description_separator @description_separator || ' and ' end |
.has_description_prefix(description_prefix) ⇒ Object
49 50 51 |
# File 'lib/vector_space/simple_vector.rb', line 49 def has_description_prefix(description_prefix) @description_prefix = description_prefix end |
.has_description_separator(description_separator) ⇒ Object
57 58 59 |
# File 'lib/vector_space/simple_vector.rb', line 57 def has_description_separator(description_separator) @description_separator = description_separator end |
.has_description_suffix(description_suffix) ⇒ Object
53 54 55 |
# File 'lib/vector_space/simple_vector.rb', line 53 def has_description_suffix(description_suffix) @description_suffix = description_suffix end |
.has_dimension(dimension, attributes = {}) ⇒ Object
43 44 45 46 47 |
# File 'lib/vector_space/simple_vector.rb', line 43 def has_dimension(dimension, attributes = {}) define_method (reflection = super(dimension, attributes)).getter do reflection.value(@attributes[dimension]) end end |
.has_zero_description(zero_description) ⇒ Object
61 62 63 |
# File 'lib/vector_space/simple_vector.rb', line 61 def has_zero_description(zero_description) @zero_description = zero_description end |
Instance Method Details
#[](component) ⇒ Object
23 24 25 |
# File 'lib/vector_space/simple_vector.rb', line 23 def [](component) project(component) end |
#each ⇒ Object
27 28 29 |
# File 'lib/vector_space/simple_vector.rb', line 27 def each dimensions.each do |dimension| yield [dimension, project(dimension)] end end |
#to_s ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/vector_space/simple_vector.rb', line 11 def to_s if zero? && zero_description zero_description else [ description_prefix, dimensions.map { |dimension| describe_value(dimension) }.compact.join(description_separator), description_suffix ].join end end |