Sha256: 447b8da92003d87ff93448dfdbd557b4e91a102824fc816c80014412a4707f58

Contents?: true

Size: 620 Bytes

Versions: 1

Compression:

Stored size: 620 Bytes

Contents

module Rubrowser
  class D3
    def initialize(node)
      @node = node
    end

    def constants
      node_id(node)
    end

    def occurences
      node_occurences(node)
    end

    private

    attr_reader :node

    def node_id(node)
      node.children.map do |n|
        node_id(n)
      end.reduce(:+).to_a.push({ name: node.name, id: node.id })
    end

    def node_occurences(node)
      occurences = []
      occurences += node.children.map { |n| node_occurences(n) }.reduce([], :+)

      occurences += node.occurences.map { |n| {source: node.id, target: n.id } }.to_a
      occurences
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubrowser-0.1.6 lib/d3.rb