Sha256: a4f285fd7a85fe1455568f629cf0ceecc449b694db4868b415ba9fe953d8f3b1
Contents?: true
Size: 1.28 KB
Versions: 2
Compression:
Stored size: 1.28 KB
Contents
require "thor" require_relative "error" require_relative "markdown_parser" require_relative "domain_diagram_generator" require_relative "output_generator" module Marmerdo class Cli < Thor class ArgumentError < Error; end desc "generate SOURCE_GLOB OUTPUT_PATH", "Generate a mermaid diagram from markdown files" option :link_extension, type: :boolean, default: true, desc: "Whether to write the file extension to the link." def generate(source_glob, output_path) raise ArgumentError, "You must provide a source glob and an output file" if source_glob.nil? || output_path.nil? enable_link_extension = options[:link_extension] nodes = Dir[source_glob].map do |source_path| content = File.read(source_path) node = Marmerdo::MarkdownParser.new(source_path, content).parse puts "Loaded #{node.name}." if node node end.compact puts "Writing domain diagram to #{output_path}." domain_diagram = Marmerdo::DomainDiagramGenerator.new( output_path: output_path, nodes: nodes, enable_link_extension: enable_link_extension ).generate output_content = OutputGenerator.new(output_path, domain_diagram).generate File.write(output_path, output_content) puts "Done!" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
marmerdo-0.3.1 | lib/marmerdo/cli.rb |
marmerdo-0.2.3 | lib/marmerdo/cli.rb |