class Courgette::NodeGrouper
Attributes
namespaces[R]
nodes[R]
Public Class Methods
new(nodes, max_groups)
click to toggle source
# File lib/courgette/node_grouper.rb, line 3 def initialize nodes, max_groups @nodes = nodes @max_groups = max_groups calculate end
Public Instance Methods
group(node)
click to toggle source
# File lib/courgette/node_grouper.rb, line 10 def group node idx = namespaces.index node[0...-1][0...1] idx ||= -1 idx = [2 + idx, @max_groups].min end
groups()
click to toggle source
# File lib/courgette/node_grouper.rb, line 16 def groups @namespaces end
Private Instance Methods
calculate()
click to toggle source
# File lib/courgette/node_grouper.rb, line 23 def calculate @namespaces = nodes. group_by { |n| n[0...-1][0...1] }. reject { |k, v| k.empty? || v.length < 4 }. map(&:first). uniq end