class Ms::Data::Transposed

A Transposed data array lazily evaluates it’s unresolved data as a transposed array. The unresolved data is evaluated into an array using to_a.

t = Ms::Data::Transposed.new([[1,4],[2,5],[3,6]])

t.unresolved_data  # => [[1,4],[2,5],[3,6]]
t.data             # => []
t[0]               # => [1,2,3]
t[1]               # => [4,5,6]
t.data             # => [[1,2,3], [4,5,6]]

Public Instance Methods

[](index) click to toggle source
# File lib/ms/data/transposed.rb, line 26
def [](index)
  resolve.data[index]
end
resolve() click to toggle source
# File lib/ms/data/transposed.rb, line 34
def resolve
  @data = @unresolved_data.to_a.transpose unless resolved?
  self
end
resolved?() click to toggle source
# File lib/ms/data/transposed.rb, line 30
def resolved?
  !@data.empty?
end