Class: Ms::Data::Transposed

Inherits:
Simple
  • Object
show all
Defined in:
lib/ms/data/transposed.rb

Overview

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]]

Instance Attribute Summary

Attributes inherited from Simple

#data, #unresolved_data

Instance Method Summary collapse

Methods inherited from Simple

#initialize

Constructor Details

This class inherits a constructor from Ms::Data::Simple

Instance Method Details

#[](index) ⇒ Object



26
27
28
# File 'lib/ms/data/transposed.rb', line 26

def [](index)
  resolve.data[index]
end

#resolveObject



34
35
36
37
# File 'lib/ms/data/transposed.rb', line 34

def resolve
  @data = @unresolved_data.to_a.transpose unless resolved?
  self
end

#resolved?Boolean



30
31
32
# File 'lib/ms/data/transposed.rb', line 30

def resolved?
  !@data.empty?
end