尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

5分钟上手ruby-graphviz:从零绘制你的第一张依赖关系图

5分钟上手ruby-graphviz:从零绘制你的第一张依赖关系图 5分钟上手ruby-graphviz从零绘制你的第一张依赖关系图【免费下载链接】Ruby-Graphviz[MIRROR] Ruby interface to the GraphViz graphing tool项目地址: https://gitcode.com/gh_mirrors/ru/Ruby-Graphvizruby-graphviz 是 Ruby 语言连接 GraphViz 绘图工具的经典接口库让你用几行 Ruby 代码就能画出漂亮的依赖关系图、流程图和调用图。无论你是想可视化 Ruby 项目的模块依赖还是给文档配一张架构示意图这份 ruby-graphviz 新手教程都能在 5 分钟内带你跑通第一张图。ruby-graphviz 能帮你做什么简单说你只管声明谁连向谁GraphViz 引擎负责自动排版ruby-graphviz 负责把结果输出成 PNG、PDF、SVG 等图片文件。典型场景包括依赖关系图Gem 之间的依赖、模块之间的调用关系流程图函数调用链、状态机、业务流程️结构图XML、Git 提交历史、家谱树等可视化安装 ruby-graphviz两行命令搞定ruby-graphviz 分为两部分Ruby 侧的 gem以及系统侧的 GraphViz 图形引擎两者缺一不可。第一步安装 gemgem install ruby-graphviz或者在项目里写入 Gemfilegem ruby-graphviz第二步确保系统已安装 GraphVizmacOS 用brew install graphvizDebian/Ubuntu 用apt install graphviz库内部通过调用dot等可执行程序完成渲染。 也可以从仓库获取源码体验git clone https://gitcode.com/gh_mirrors/ru/Ruby-Graphviz第一张依赖关系图5行核心代码新建一个first_graph.rb文件写一个最小的依赖图require ruby-graphviz g GraphViz.new( :G, :type :digraph ) # 创建一个有向图 a g.add_nodes( main ) # 添加节点 b g.add_nodes( parse ) g.add_edges( a, b ) # 添加一条依赖边 g.output( :png first_graph.png ) # 输出为 PNG运行ruby first_graph.rb当前目录就会生成first_graph.png——这就是你的第一张依赖关系图 核心 API 其实只有三个API作用类比add_nodes添加节点图里的框add_edges添加有向边框与框之间的箭头output渲染输出图片按下生成按钮完整的 API 实现在 lib/graphviz.rb 中节点与边的定义分别在 lib/graphviz/node.rb 和 lib/graphviz/edge.rb。换个写法块语法和 DSL 风格同样的图还有两种更Ruby的写法适合小型图表。块写法一行搞定GraphViz.new( :G, :type :digraph ) { |g| g.world( :label World ) g.hello( :label Hello ) }.output( :png hello_world.png )DSL 写法则更像在读这张图require ruby-graphviz/dsl digraph :G do world[:label World] hello[:label Hello] output :png hello_world.png endDSL 的实现见 lib/graphviz/dsl.rb其中digraph、graph、strict分别创建有向图、无向图和严格有向图。进阶美化节点形状、颜色与边样式默认输出已经能用但稍加点缀就能让依赖图更专业。参考示例 examples/sample02.rb 的思路g.node[:shape] ellipse # 全局节点设为椭圆 main g.add_nodes( main, :shape box ) # 单个节点用方框 b g.add_nodes( compare, :style filled, # 填充色的节点 :color .7 .3 1.0 ) g.add_edges( main, b, :color red, # 红色加粗的边 :style bold, :label 100 times )常用属性速查节点shapebox / ellipse / polygon / invtriangle…、stylefilled、color、label边color、styledotted / bold、weight、label想系统看各种形状效果可以直接运行 examples/sample03.rb。附赠的 5 个实用小工具ruby-graphviz 不止能画图还自带一组开箱即用的命令行工具对日常开发特别顺手工具一句话说明ruby2gv直接分析一个 Ruby 脚本生成它的函数依赖关系图gem2gv画出某个 Gem 与其他 Gem 之间的依赖图dot2ruby把 GraphViz 的 .dot 文件转成 Ruby 脚本git2gv把 Git 提交历史渲染成图xml2gv把 XML 文件的结构可视化成图比如想看 ruby-graphviz 自身的 gem 依赖gem2gv -Tpng -o ruby-graphviz.png ruby-graphviz对应的工具手册见 man/ruby2gv.1 和 man/gem2gv.1 等说明文件。还能做图论分析如果你不满足于画图lib/graphviz/theory.rb 提供了完整的图论扩展邻接矩阵、度矩阵、Laplacian 矩阵、Dijkstra 最短路、关键路径等配合 examples/theory/pert.rb 可以直观理解这些概念如何应用。新手常见问题运行时报找不到 dot 命令系统没装 GraphViz 或不在 PATH 中装上引擎或在创建图时传:path参数指定路径。输出格式有哪些PNG、SVG、PDF、PS、JPEG 等 40 多种完整清单定义在 lib/graphviz/constants.rb。想解析现成的 .dot 文件用GraphViz.parse( hello.dot )示例见 examples/dot/hello.dot。更多练手案例examples 目录里有 70 多个示例脚本从 examples/sample01.rb 一路到 examples/sample99.rb是学习各种图类型状态机、聚类、子图的最佳素材。小结ruby-graphviz 把强大的 GraphViz 引擎包装成了极简的 Ruby APIadd_nodes建点、add_edges连线、output出图三步就能得到一张专业的依赖关系图。配合它附赠的ruby2gv、gem2gv等工具和丰富的示例脚本无论是给项目画架构图还是做依赖分析都值得装一个试试 ✨【免费下载链接】Ruby-Graphviz[MIRROR] Ruby interface to the GraphViz graphing tool项目地址: https://gitcode.com/gh_mirrors/ru/Ruby-Graphviz创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表