{"id":16748513,"url":"https://github.com/morozzzko/structurizr-ruby","last_synced_at":"2025-10-08T04:47:09.236Z","repository":{"id":38082201,"uuid":"270805195","full_name":"Morozzzko/structurizr-ruby","owner":"Morozzzko","description":"A simple wrapper about Structurizr Java library which lets us interact with our workspace","archived":false,"fork":false,"pushed_at":"2023-09-02T01:58:16.000Z","size":2403,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-08T04:47:08.626Z","etag":null,"topics":["architecture","c4model","ruby","structurizr"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Morozzzko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-06-08T19:49:39.000Z","updated_at":"2024-12-21T03:40:53.000Z","dependencies_parsed_at":"2025-04-10T13:53:02.111Z","dependency_job_id":"769c7e6b-920f-4956-982f-40aa49c2f40e","html_url":"https://github.com/Morozzzko/structurizr-ruby","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Morozzzko/structurizr-ruby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morozzzko%2Fstructurizr-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morozzzko%2Fstructurizr-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morozzzko%2Fstructurizr-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morozzzko%2Fstructurizr-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Morozzzko","download_url":"https://codeload.github.com/Morozzzko/structurizr-ruby/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morozzzko%2Fstructurizr-ruby/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278891749,"owners_count":26063855,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["architecture","c4model","ruby","structurizr"],"created_at":"2024-10-13T02:12:53.116Z","updated_at":"2025-10-08T04:47:09.231Z","avatar_url":"https://github.com/Morozzzko.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Structurizr\n\n[![Test Coverage](https://api.codeclimate.com/v1/badges/b75e8c130fc8b3bf54b5/test_coverage)](https://codeclimate.com/github/Morozzzko/structurizr-ruby/test_coverage)[![Maintainability](https://api.codeclimate.com/v1/badges/b75e8c130fc8b3bf54b5/maintainability)](https://codeclimate.com/github/Morozzzko/structurizr-ruby/maintainability)\n\n\n`structurizr-ruby` brings the [C4 model](https://c4model.com) to Ruby. It piggybacks on top of [Java's API](https://github.com/structurizr/java) for [Structurizr](https://structurizr.com), which is a powerful tool for incorporating C4 model into your software architecture process.\n\nThe primary goal is to enable better introspection \u0026 scripting for workspaces defined by Structurizr DSL.\n\nNumber 1 feature of this library is actually a runnable `REPL` which allows a flexible introspection. You can run it via `structurizr-repl \u003cworkspace.json\u003e`.\n\nAs a bonus, this library provides a complete integration to build Structurizr workspace from Ruby. However, it doesn't make much sense since there's [Structurizr DSL](https://structurizr.com/help/dsl). However, it's still a bit useful if you're using [DSL's scripting feature](https://github.com/structurizr/dsl/blob/master/docs/language-reference.md#scripts), you might find this library a bit useful.\n\nIf you've met something which doesn't have a nice Ruby DSL, you can always use [`Structurizr::Metal`](/lib/structurizr/metal.rb) to access Java classes and methods. Please don't forget to [submit issue or a pull-request](#Contributing) which describes your use-case and the missing features.\n\n## Versioning\n\nAfter entering 1.0, this library will follow Structurizr-core versioning. If the gem bundles `structurizr-core` 1.26.1, the gem will use version 1.26.1. \n\nSince Structurizr **does not follow SemVer**, there are no guarantees that minor versions won't break anything. \n\nAt least we have version parity with Structurizr.\n\n## Installation\n\nInstall the gem:\n\n    $ jruby -S gem install structurizr\n\nor add it to your Gemfile via CLI:\n\n    $ jruby -S bundle add structurizr\n\nor just edit your `Gemfile` manually:\n\n```ruby\n# Gemfile\n\ngem 'structurizr'\n```\n\n## Usage\n\nBefore you start, you need to `require` the necessary files:\n\n```ruby\nrequire 'structurizr'\n```\n\nIf you have a `workspace.json`, you can run an interactive REPL to read values from it: `structurizr-repl workspace.json`\n\n## Development\n\nAfter checking out the repo, run `make setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `jruby -S bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/Morozzzko/structurizr. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/Morozzzko/structurizr-ruby/blob/master/CODE_OF_CONDUCT.md).\n\n\n## Code of Conduct\n\nEveryone interacting in the Structurizr project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/Morozzzko/structurizr-ruby/blob/master/CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorozzzko%2Fstructurizr-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorozzzko%2Fstructurizr-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorozzzko%2Fstructurizr-ruby/lists"}