Sha256: 3d962a9c9993553a012943e93bb030b34d8e62b66d893f81809b21bedb33a164

Contents?: true

Size: 1.01 KB

Versions: 10

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require_relative "../pathname_utility"

module JsDependency
  module Mermaid
    class NodesLink
      attr_reader :parent, :child

      # @param [String] parent
      # @param [String] child
      def initialize(parent, child)
        @parent = Pathname.new(parent)
        @child = Pathname.new(child)
      end

      # @param [Integer] level
      # @return [String]
      def parent_module_name(level = 0)
        mermaid_str(@parent, level)
      end

      # @param [Integer] level
      # @return [String]
      def child_module_name(level = 0)
        mermaid_str(@child, level)
      end

      private

      # @param [Pathname] pathname
      # @param [Integer] level
      def mermaid_str(pathname, level = 0)
        "#{parse(pathname).join("_")}[\"#{parse(pathname, level).join("/")}\"]"
      end

      # @param [Pathname] pathname
      # @param [Integer] level
      def parse(pathname, level = -1)
        JsDependency::PathnameUtility.parse(pathname, level)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
js_dependency-0.3.11 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.10 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.9 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.8 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.7 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.6 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.5 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.4 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.3.1 lib/js_dependency/mermaid/nodes_link.rb
js_dependency-0.3.3 lib/js_dependency/mermaid/nodes_link.rb