{"id":13463212,"url":"https://github.com/topfunky/gruff","last_synced_at":"2025-05-13T00:13:20.247Z","repository":{"id":386172,"uuid":"3542","full_name":"topfunky/gruff","owner":"topfunky","description":"Gruff graphing library for Ruby","archived":false,"fork":false,"pushed_at":"2025-05-10T23:16:01.000Z","size":434348,"stargazers_count":1378,"open_issues_count":20,"forks_count":239,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-05-13T00:13:16.095Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://gruff.rubyforge.org","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/topfunky.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE","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,"zenodo":null}},"created_at":"2008-03-11T22:06:00.000Z","updated_at":"2025-05-10T23:16:05.000Z","dependencies_parsed_at":"2023-01-11T15:34:54.193Z","dependency_job_id":"e576cc13-feff-4acf-80cc-2138cf763f1a","html_url":"https://github.com/topfunky/gruff","commit_stats":{"total_commits":897,"total_committers":51,"mean_commits":17.58823529411765,"dds":0.2954292084726867,"last_synced_commit":"c6d5e608b880c72d80a3e0908e0d0284ed1815ea"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/topfunky%2Fgruff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/topfunky%2Fgruff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/topfunky%2Fgruff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/topfunky%2Fgruff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/topfunky","download_url":"https://codeload.github.com/topfunky/gruff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253843225,"owners_count":21972874,"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":[],"created_at":"2024-07-31T13:00:48.166Z","updated_at":"2025-05-13T00:13:20.182Z","avatar_url":"https://github.com/topfunky.png","language":"Ruby","funding_links":[],"categories":["Graphics","Visualization","Ruby","Charts"],"sub_categories":["Graphing"],"readme":"# Gruff Graphs\n\n[![CI](https://github.com/topfunky/gruff/actions/workflows/ci.yml/badge.svg)](https://github.com/topfunky/gruff/actions/workflows/ci.yml)\n[![Gem Version](https://badge.fury.io/rb/gruff.svg)](https://badge.fury.io/rb/gruff)\n\nA library for making beautiful graphs.\n\nBuilt on top of [rmagick](https://github.com/rmagick/rmagick); see its web page\nfor a list of the system-level prerequisities (ImageMagick etc) and how to install them.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```sh\ngem 'gruff'\n```\n\nAnd then execute:\n\n```sh\n$ bundle\n```\n\nOr install it yourself as:\n\n```sh\n$ gem install gruff\n```\n\n## Font\nGruff uses [Roboto](https://fonts.google.com/specimen/Roboto) font as default font which is licensed under the Apache License, Version 2.0.\n\n## Usage\n\n```ruby\nrequire 'gruff'\ng = Gruff::Line.new\ng.title = 'Wow!  Look at this!'\ng.labels = { 0 =\u003e '5/6', 1 =\u003e '5/15', 2 =\u003e '5/24', 3 =\u003e '5/30', 4 =\u003e '6/4',\n             5 =\u003e '6/12', 6 =\u003e '6/21', 7 =\u003e '6/28' }\ng.data :Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]\ng.data :Charles, [80, 54, 67, 54, 68, 70, 90, 95]\ng.data :Julie, [22, 29, 35, 38, 36, 40, 46, 57]\ng.data :Jane, [95, 95, 95, 90, 85, 80, 88, 100]\ng.data :Philip, [90, 34, 23, 12, 78, 89, 98, 88]\ng.data :Arthur, [5, 10, 13, 11, 6, 16, 22, 32]\ng.write('exciting.png')\n```\n\n## Examples\n\nYou can find many examples in the [test](https://github.com/topfunky/gruff/tree/master/test)\ndirectory along with their resulting charts in the\n[expected](https://github.com/topfunky/gruff/tree/master/test/expected) directory.\n\n### Accumulator bar chart\n\n![Accumulator bar chart](https://raw.github.com/topfunky/gruff/master/test/expected/accum_bar.png)\n\n### Area chart\n\n![Area chart](https://raw.github.com/topfunky/gruff/master/test/expected/area_keynote.png)\n\n### Bar chart\n\n![Bar chart](https://raw.github.com/topfunky/gruff/master/test/expected/bar_rails_keynote.png)\n\n### Bezier chart\n\nIn progress!\n\n![Bezier chart](https://raw.github.com/topfunky/gruff/master/test/expected/bezier_3.png)\n\n### Bullet chart\n\nIn progress!\n\n![Bullet chart](https://raw.github.com/topfunky/gruff/master/test/expected/bullet_greyscale.png)\n\n### Dot chart\n\n![Dot chart](https://raw.github.com/topfunky/gruff/master/test/expected/dot.png)\n\n### Line chart\n\n![Line chart](https://raw.github.com/topfunky/gruff/master/test/expected/line_theme_rails_keynote_.png)\n\n### LineXY chart\n\n![LineXY chart](https://raw.github.com/topfunky/gruff/master/test/expected/line_xy.png)\n\n### Net chart\n\n![Net chart](https://raw.github.com/topfunky/gruff/master/test/expected/net_wide_graph.png)\n\n### Pie chart\n\n![Pie chart](https://raw.github.com/topfunky/gruff/master/test/expected/pie_pastel.png)\n\n### Scatter chart\n\n![Scatter chart](https://raw.github.com/topfunky/gruff/master/test/expected/scatter_basic.png)\n\n### Side bar chart\n\n![Side bar chart](https://raw.github.com/topfunky/gruff/master/test/expected/side_bar.png)\n\n### Side stacked bar chart\n\n![Side stacked bar chart](https://raw.github.com/topfunky/gruff/master/test/expected/side_stacked_bar_keynote.png)\n\n### Spider chart\n\n![Spider chart](https://raw.github.com/topfunky/gruff/master/test/expected/spider_37signals.png)\n\n### Stacked area chart\n\n![Stacked area chart](https://raw.github.com/topfunky/gruff/master/test/expected/stacked_area_keynote.png)\n\n### Stacked bar chart\n\n![Stacked bar chart](https://raw.github.com/topfunky/gruff/master/test/expected/stacked_bar_keynote.png)\n\n### Histogram chart\n\n![Histogram chart](https://raw.github.com/topfunky/gruff/master/test/expected/histogram.png)\n\n### Box chart\n\n![Box chart](https://raw.github.com/topfunky/gruff/master/test/expected/box.png)\n\n### Candlestick\n\n![Candlestick](https://raw.github.com/topfunky/gruff/master/test/expected/candlestick.png)\n\n### Bubble chart\n\n![Bubble chart](https://raw.github.com/topfunky/gruff/master/test/expected/bubble.png)\n\n## Documentation\n\nhttp://www.rubydoc.info/github/topfunky/gruff/frames\n\n## Supported Ruby Versions\n\n- Ruby 3.0 or later\n- JRuby 9.4.x or later\n\n## Development\n1. Build docker image\n```sh\n$ ./docker-build.sh\n```\n\n2. Launch docker image\n```sh\n$ ./docker-launch.sh\n```\n\n3. Run tests\n```sh\n$ bundle exec rake\n```\n\nIf you have made changes that involve updating the expected image, you need to update the image with the following command after running tests.\n\n```sh\n$ bundle exec rake test:image:update\n```\n\n## Contributing\n\n### Source\n\nThe source for this project is now kept at GitHub:\n\nhttp://github.com/topfunky/gruff\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftopfunky%2Fgruff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftopfunky%2Fgruff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftopfunky%2Fgruff/lists"}