{"id":21509220,"url":"https://github.com/mark24code/vistual_call","last_synced_at":"2025-06-29T05:37:54.481Z","repository":{"id":153982065,"uuid":"631199709","full_name":"Mark24Code/vistual_call","owner":"Mark24Code","description":"Ruby virtual call graph","archived":false,"fork":false,"pushed_at":"2023-04-25T05:54:24.000Z","size":18165,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-12T17:20:02.786Z","etag":null,"topics":["graph","trace","virtual"],"latest_commit_sha":null,"homepage":"https://github.com/Mark24Code/vistual_call","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mark24Code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-22T08:54:22.000Z","updated_at":"2023-08-22T04:22:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"5f713838-8a7c-46ff-9b14-72e2f12046de","html_url":"https://github.com/Mark24Code/vistual_call","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Mark24Code/vistual_call","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark24Code%2Fvistual_call","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark24Code%2Fvistual_call/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark24Code%2Fvistual_call/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark24Code%2Fvistual_call/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mark24Code","download_url":"https://codeload.github.com/Mark24Code/vistual_call/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mark24Code%2Fvistual_call/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262543971,"owners_count":23326632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph","trace","virtual"],"created_at":"2024-11-23T21:21:31.252Z","updated_at":"2025-06-29T05:37:54.475Z","avatar_url":"https://github.com/Mark24Code.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VistualCall\n\nVistualCall is a gem to help you trace your code and export beautiful vistual call graph.\n\n# Introduction\n\n## Dependency\n\n1. Graphviz\n\nYou need to install [Graphviz](https://graphviz.org/) by yourself.\n\nGo to install [graphviz](https://graphviz.org/download/).\n\n## Usage\n\n### 1. Install gem\n\n`gem install vistual_call`\n\n### 2. Only the method needs to be wrapped.\n\n\n```ruby\nrequire 'vistual_call'\n\ndef call_c\nend\n\ndef call_b\n  call_c\nend\n\ndef call_a\n  call_b\nend\n\nVistualCall.trace do\n  call_a # enter call\nend\n```\n\n![sample](./example/sample.png)\n\nThe method after each node is call order number. This will help your understand the order of the function call.\n\n#### Sinatra\n\n```ruby\nrequire \"sinatra\"\nrequire_relative \"vistual_call\"\n\nVistualCall.trace(theme: :lemon) do\n  get \"/\" do\n    \"hello\"\n  end\nend\n\n```\n\n![sinatra](./example/sinatra.png)\n\n#### Vistual Call graph itself\n\n```ruby\nrequire_relative \"vistual_call\"\n\ndef call_a\nend\n\nVistualCall.trace(title: \"Outer\", show_dot: true) do\n  VistualCall.trace(title: \"Inner\", show_dot: true) do\n    call_a # whatever\n  end\nend\n\n```\n![Vistual Call](./example/vsitual_call_self.jpg)\n\n## 3. More information\n\n## configuration\n\n```ruby\n# you can pass options\nVistualCall.trace(options) do\n  # run your code here...\nend\n```\n\nOptions:\n\n| name | type | required | explain | example |\n| ---- | ---- | ---- | ---- | ---- |\n| label | String | true | 标题 | Hello |\n| labelloc | Symbol | false | 标题位置:  :top :bottom :center | :top  |\n| labeljust | Symbol | false | 标题对齐位置 :left, :center, :right | :center  |\n| direction | Symbol| false  | 绘制方向，依次是 :TB(从上到下)，:LR(从左到右,默认方式),:BT(从下到上),:RL(从右到左) | :LR |\n| format | String | false  | 输出图片格式，查看 [graphviz 支持输出格式](https://graphviz.org/docs/outputs/) 'png'、'svg'  |  默认 'png' |\n| output | String | false | 导出图片绝对路径 | 默认家目录下 `vistual_call_result.png` |\n| theme | Symbol | false | 配色主题 :sky, :lemon | 默认 :sky |\n| show_dot | boolean | false | 展示 dot 内容 | 默认 false |\n| show_order_number | boolean | false | 输出调用序号 | 默认 true |\n| jump_list | Array(String) | false | 跳过节点，默认 [\"Kernel#class\", \"Kernel#frozen?\"] | - |\n| heightlight_match | Regex | false | 默认高亮匹配 label， 默认 /method_missing/ | /method_missing/ |\n\n## LICENSE\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmark24code%2Fvistual_call","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmark24code%2Fvistual_call","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmark24code%2Fvistual_call/lists"}