javascript - 使用 Ruby 与 Cytoscape.js API 交互
问题描述
我正在编写一个用于创建有向无环图数据结构的 Ruby 模块,该模块将包括添加/删除节点、边、防止循环和维护拓扑顺序的所有功能。最终它将成为评估可能相互依赖的表达式的类似电子表格的实用程序的核心。
如果我的数据结构可以在用于绘制图形的众多功能强大的 js 库之一中可视化,这将非常有帮助,尤其是对于测试而言——我选择了Cytoscape.js。它的设置非常简单,它有一个很好的 JavaScript API 可以与图形交互和修改。我想知道 Ruby 是否有某种方式可以与浏览器窗口进行通信,特别是与在那里运行的 Cytoscape 实例进行通信。实际上,我想我想将浏览器用作我的 Ruby 程序的 GUI。理想情况下,我可以在 IRB 中加载我的模块,调用my_graph.add_edge('node_a', 'node_b')
,一旦我的 Graph 类检查循环并根据需要重新排序,它会调用cy.add({edge JSON...})
Cytoscape 实例并进行所有更新。
我在 Windows 10 上运行 ruby 2.66,我的浏览器是 Firefox。
抱歉,如果这是一个幼稚的问题,我对 ruby 相当了解,但对 Web 开发知之甚少。GUI 在 Ruby 世界中并不是一个大话题,它们似乎都用于制作小型桌面应用程序。我还想避免 Ruby of Rails 的复杂性。谢谢阅读!
解决方案
我不知道是否有一个库可以从 Ruby 中控制 cytoscape。很多时候,缺乏用于科学的 Ruby 库。您可以选择创建自己的。
如果我必须制作 ruby-cytoscape,我会使用https://github.com/cytoscape/cyREST。
使用 Ruby 的 method_missing 和动态方法定义,创建一个运行良好的客户端并不难。
祝你好运!
PS。我找到了这个。 https://github.com/kozo2/rb2cytoscape 但这只是一个骨架。
推荐阅读
- powershell - 查找有服务的服务器
- ansible - 这两个条件都没有得到满足。在我的 ansible 任务中使用这个“何时”多条件
- r - 如何对数据进行采样,以使数据的比例(按 2 个数字维度)满足 R 中用户定义的比例
- wordpress - WP_QUERY - 自定义排序
- c# - android编译项目后如何解决播放器急转问题?
- rust - 使用 sqlx 绑定数据时,为什么会出现“输入末尾的语法错误”?
- amazon-web-services - CredentialsError:配置中缺少凭据,如果使用 AWS_CONFIG_FILE,请设置 AWS_SDK_LOAD_CONFIG=1\n
- function - SSRS - 尝试使用 CountRows 函数获取总行数
- java-8 - 在使用大写月份名称解析日期时,我得到 java.time.format.DateTimeParseException
- java - 为什么即使我安装了 Java,我也会收到 Java 运行时错误?(用 Java 版本检查)