class Ms::Data::Simple
A Simple
data array that lazily evaluates unresolved_data
, and each member of unresolved_data
using to_a:
class LazyObject attr_reader :to_a def initialize(array) @to_a = array end end a = LazyObject.new([1,2,3]) b = LazyObject.new([4,5,6]) s = Ms::Data::Simple.new([a, b]) s.unresolved_data # => [a, b] s.data # => [] s[0] # => [1,2,3] s[1] # => [4,5,6] s.data # => [[1,2,3], [4,5,6]]
Attributes
data[R]
The underlying resolved data store.
unresolved_data[R]
The underlying unresolved data store.
Public Class Methods
new(unresolved_data)
click to toggle source
# File lib/ms/data/simple.rb, line 37 def initialize(unresolved_data) @data = [] @unresolved_data = unresolved_data end
Public Instance Methods
[](index)
click to toggle source
# File lib/ms/data/simple.rb, line 42 def [](index) @data[index] ||= @unresolved_data.to_a[index].to_a end
resolve()
click to toggle source
# File lib/ms/data/simple.rb, line 46 def resolve 0.upto(@unresolved_data.length - 1) do |index| self[index] end unless resolved? self end
resolved?()
click to toggle source
# File lib/ms/data/simple.rb, line 54 def resolved? @data.compact.length == @unresolved_data.length end