{"id":13463075,"url":"https://github.com/thekompanee/fuubar","last_synced_at":"2025-04-11T03:28:23.613Z","repository":{"id":1181932,"uuid":"1081878","full_name":"thekompanee/fuubar","owner":"thekompanee","description":"The instafailing RSpec progress bar formatter","archived":false,"fork":false,"pushed_at":"2022-02-12T13:29:51.000Z","size":313,"stargazers_count":958,"open_issues_count":2,"forks_count":65,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-02T18:04:08.671Z","etag":null,"topics":["byebug","pry","rspec"],"latest_commit_sha":null,"homepage":"http://jeffkreeftmeijer.com/2010/fuubar-the-instafailing-rspec-progress-bar-formatter/","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/thekompanee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/contributing.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"jfelchner"}},"created_at":"2010-11-15T13:18:58.000Z","updated_at":"2025-01-25T01:35:50.000Z","dependencies_parsed_at":"2022-07-25T01:16:06.974Z","dependency_job_id":null,"html_url":"https://github.com/thekompanee/fuubar","commit_stats":null,"previous_names":["jeffkreeftmeijer/fuubar"],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thekompanee%2Ffuubar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thekompanee%2Ffuubar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thekompanee%2Ffuubar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thekompanee%2Ffuubar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thekompanee","download_url":"https://codeload.github.com/thekompanee/fuubar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247337983,"owners_count":20922948,"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":["byebug","pry","rspec"],"created_at":"2024-07-31T13:00:45.583Z","updated_at":"2025-04-11T03:28:23.594Z","avatar_url":"https://github.com/thekompanee.png","language":"Ruby","funding_links":["https://github.com/sponsors/jfelchner"],"categories":["Developer Tools","Ruby","Testing"],"sub_categories":["CLI Progress Bars"],"readme":"Fuubar\n================================================================================\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://rubygems.org/gems/fuubar\" alt=\"RubyGems Version\"\u003e\n    \u003cimg src=\"https://img.shields.io/gem/v/fuubar.svg?style=flat-square\u0026label=current-version\" alt=\"RubyGems Version\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://rubygems.org/gems/fuubar\" alt=\"RubyGems Rank Overall\"\u003e\n    \u003cimg src=\"https://img.shields.io/gem/rt/fuubar.svg?style=flat-square\u0026label=total-rank\" alt=\"RubyGems Rank Overall\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://rubygems.org/gems/fuubar\" alt=\"RubyGems Rank Daily\"\u003e\n    \u003cimg src=\"https://img.shields.io/gem/rd/fuubar.svg?style=flat-square\u0026label=daily-rank\" alt=\"RubyGems Rank Daily\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://rubygems.org/gems/fuubar\" alt=\"RubyGems Downloads\"\u003e\n    \u003cimg src=\"https://img.shields.io/gem/dt/fuubar.svg?style=flat-square\u0026label=total-downloads\" alt=\"RubyGems Downloads\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/thekompanee/fuubar/actions?query=workflow%3ABuild\" alt=\"Build Status\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/workflow/status/jfelchner/fuubar/Build?label=CI\u0026style=flat-square\u0026logo=github\" alt=\"Build Status\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\nfuubar is an instafailing [RSpec][rspec] formatter that uses\na progress bar instead of a string of letters and dots as feedback.\n\n![examples][example-gif]\n\nInstallation\n--------------------------------------------------------------------------------\n\n```ruby\ngem install fuubar\n\n# or in your Gemfile\n\ngem 'fuubar'\n```\n\nUsage\n--------------------------------------------------------------------------------\n\nIn order to use fuubar, you have three options.\n\n### Option 1: Invoke It Manually Via The Command Line\n\n```bash\nrspec --format Fuubar --color\n```\n\n### Option 2: Add It To Your Local `.rspec` File\n\n```text\n# .rspec\n\n--format Fuubar\n--color\n```\n\n### Option 3: Add It To Your `spec_helper.rb`\n\n```ruby\n# spec/spec_helper.rb\n\nRSpec.configure do |config|\n  config.add_formatter 'Fuubar'\nend\n```\n\nAdvanced Usage\n--------------------------------\n\n### Customizing The Bar\n\nfuubar exposes an RSpec configuration variable called\n`fuubar_progress_bar_options` which, when set will be passed directly to\n[ruby-progressbar][rpb-github] which does all the heavy lifting.  Take a look at\nthe [ruby-progressbar documentation][rpb-docs] for details on all of the options\nyou can pass in.\n\n#### Example\n\nLet's say for example that you would like to change the format of the bar. You\nwould do that like so:\n\n```ruby\n# spec/spec_helper.rb\n\nRSpec.configure do |config|\n  config.fuubar_progress_bar_options = { :format =\u003e 'My Fuubar! \u003c%B\u003e %p%% %a' }\nend\n```\n\nwould make it so that, when fuubar is output, it would look something like:\n\n```text\nMy Fuubar! \u003c================================                  \u003e 53.44% 00:12:31\n```\n\n### Hiding Pending/Skipped Spec Summary\n\nBy default fuubar follows RSpec's lead and will dump out a summary of all of the\npending specs in the suite once the test run is over.  This is a good idea\nbecause the additional noise is a nudge to fix those tests.  We realize however\nthat not all teams have the luxury of implementing all of the pending specs and\ntherefore fuubar gives you the option of supressing that summary.\n\n#### Example\n\n```ruby\n# spec/spec_helper.rb\n\nRSpec.configure do |config|\n  config.fuubar_output_pending_results = false\nend\n```\n\n### Enabling Auto-Refresh\n\nBy default fuubar refreshes the bar only between each spec.\nYou can enable an auto-refresh feature that will keep refreshing the bar (and\ntherefore the ETA) every second.\nYou can enable the feature as follows:\n\n```ruby\n# spec/spec_helper.rb\n\nRSpec.configure do |config|\n  config.fuubar_auto_refresh = true\nend\n```\n\n#### Undesirable Effects\n\nUnfortunately this option doesn't play well with things like debuggers, as\nhaving a bar show up every second would be undesireable (which is why the\nfeature is disabled by default). Depending on what you are using, you may be\ngiven ways to work around this problem.\n\n##### Pry\n\n[Pry][pry] provides hooks that can be used to disable fuubar during a debugging\nsession, you could for example add the following to your spec helper:\n\n```ruby\n# spec/spec_helper.rb\n\nPry.config.hooks.add_hook(:before_session, :disable_fuubar_auto_refresh) do |_output, _binding, _pry|\n  RSpec.configuration.fuubar_auto_refresh = false\nend\n\nPry.config.hooks.add_hook(:after_session, :restore_fuubar_auto_refresh) do |_output, _binding, _pry|\n  RSpec.configuration.fuubar_auto_refresh = true\nend\n```\n\n##### Byebug\n\nUnfortunately [byebug][byebug] does not provide hooks, so your best bet is to\ndisable auto-refresh manually before calling `byebug`.\n\n```ruby\nRSpec.configuration.fuubar_auto_refresh = false\nbyebug\n```\n\nSecurity\n--------------------------------------------------------------------------------\n\nfuubar is cryptographically signed. To be sure the gem you install hasn’t been\ntampered with, follow these steps:\n\n* Add my public key (if you haven’t already) as a trusted certificate\n\n  ```bash\n  gem cert --add \u003c(curl -Ls https://raw.github.com/thekompanee/fuubar/master/certs/thekompanee.pem)\n  ```\n\n* Install fuubar telling it to use security checks when possible.\n\n  ```bash\n  gem install fuubar -P MediumSecurity\n  ```\n\n\u003e **Note:** The `MediumSecurity` trust profile will verify signed gems, but\n\u003e allow the installation of unsigned dependencies.\n\u003e\n\u003e This is necessary because fuubar has a dependency on RSpec which isn't signed,\n\u003e and therefore we cannot use `HighSecurity`, which requires signed gems.\n\nCredits\n--------------------------------------------------------------------------------\n\nfuubar was written by [Jeff Felchner][jefff-profile] and [Jeff\nKreeftmeijer][jeffk-profile]\n\n![The Kompanee][kompanee-logo]\n\nfuubar is maintained and funded by [The Kompanee, Ltd.][kompanee-site]\n\nThe names and logos for The Kompanee are trademarks of The Kompanee, Ltd.\n\nLicense\n--------------------------------------------------------------------------------\n\nfuubar is Copyright \u0026copy; 2010-2021 Jeff Kreeftmeijer and Jeff Felchner. It is\nfree software, and may be redistributed under the terms specified in the\n[LICENSE][license] file.\n\n[byebug]:        https://github.com/deivid-rodriguez/byebug\n[example-gif]:   https://kompanee-public-assets.s3.amazonaws.com/readmes/fuubar-examples.gif\n[jefff-profile]: https://github.com/jfelchner\n[jeffk-profile]: https://github.com/jeffkreeftmeijer\n[kompanee-logo]: https://kompanee-public-assets.s3.amazonaws.com/readmes/kompanee-horizontal-black.png\n[kompanee-site]: http://www.thekompanee.com\n[license]:       https://github.com/thekompanee/fuubar/blob/master/LICENSE.txt\n[pry]:           https://github.com/pry/pry\n[rpb-docs]:      https://github.com/jfelchner/ruby-progressbar/wiki/Options\n[rpb-github]:    https://github.com/jfelchner/ruby-progressbar\n[rspec]:         https://github.com/rspec\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthekompanee%2Ffuubar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthekompanee%2Ffuubar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthekompanee%2Ffuubar/lists"}