Method: MLL.dimensions
- Defined in:
- lib/mll.rb
.dimensions ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/mll.rb', line 5 def dimensions lambda do |list, limit = nil| list = [list] enumerator = Enumerator.new do |e| # String.size shall not pass while list.all?{ |i| i.respond_to? :each } && list.map(&:size).uniq.size == 1 # TODO refactor into depth-first yielding e << list.first.size list.flatten! 1 end end limit ? enumerator.lazy.take(limit) : enumerator end end |