Class: Array

Inherits:
Object show all
Defined in:
lib/gviz/system_extension.rb

Instance Method Summary collapse

Instance Method Details

#join_by(sep, by) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/gviz/system_extension.rb', line 40

def join_by(sep, by)
  arr = self.dup
  res, q, cnt = [], [], 0
  while elm = arr.shift
    cnt += elm.to_s.size
    if cnt < by
      q << elm
    else
      res << q.join(sep)
      q.clear
      cnt = 0
    end
  end
  res << q.join(sep) unless q.empty?
  res
end

#tileizeObject

Returns a tileized string for building a label using record shape.

[[[:a, :b], :c], [1, 2, 3]].tileize # => "{{{a|b}|c}|{1|2|3}}"


62
63
64
65
66
# File 'lib/gviz/system_extension.rb', line 62

def tileize
  self.map do |x|
    x.is_a?(Array) ? x.tileize : x
  end.join('|').wrap
end