Skip to content

Overrides Tracker tracks all monkey patches in your codebase and the methods they override. It allows for comparison between builds to reveal changes you might miss otherwise.

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.txt
Notifications You must be signed in to change notification settings

SyborgStudios/overrides_tracker

Overrides Tracker

Overrides Tracker keeps track of all overriding methods and their originals inside and outside of your codebase and allows for comparison across branches.

Gem Version Coverage Status CircleCI

Contact

Code and Bug Reports

Getting started

  1. Add OverridesTracker to your Gemfile and bundle install:

    gem 'overrides_tracker', group: [:test, :development]
  2. Add overrides_tracker/* to your .gitignore file because you want to keep hold of your report file when switching branches.

  3. Track your overrides by running:

    bundle exec overrides_tracker track

    This will print out all overrides on the terminal as well as generate a nice and clean HTML summary. That summary can be found under overrides_tracker/summary.html and will look somewhat like this:

  1. This will create a folder called overrides_tracker and a file containing all methods you override as well as your overrides in that branch.

  2. Switch branch and follow steps 1-3 again. If you want to compare multiple branches you need to redo these steps for every branch.

  3. Now you have at least 2 otf-files in the overrides_tracker folder

  4. It's time to compare these overrides accross branches.

    bundle exec overrides_tracker compare
  5. The result will be printed on the terminal as well as written as nice and clean HTML. That comparison can be found under overrides_tracker/compare.html and will look somewhat like this:

Integrate Overrides Tracker into your CI/CD pipeline with Overrides.io

Overrides.io is a service that monitors code you override for changes. It notifies you whenever those changes occur. Additionally it gives you a beautiful overview of all the methods you have overridden as well as your overrides side by side.

Project View Build View Comparison View

Overrides Tracker can easily be integrated into your CI/CD pipeline.
Just sign up at Overrides.io and setup your project within a view seconds and you will receive an OVERRIDES_API_TOKEN.

Now just set OVERRIDES_API_TOKEN environment variable with the value of that token and call 'bundle exec overrides_tracker track'. To push the result file to overrides.io manually you could also just call 'bundle exec overrides_tracker track YOUR_OVERRIDES_API_TOKEN'.

You can find a detailed description how to integrate it with CircleCI, GitHub Action and Jenkins here:

https://www.overrides.io/continuous_integration

GEM support

Overrides Tracker can also be used on GEMs. It will autoload all classes in the lib and app folders.

Sometimes that is not enough:

If you need further requirements, you can just add a .overrides_tracker folder and add a requirements.rb file to it. In that one you can just require the classes your gem depends on.

You can also use the 'require_all' way to include complete folders, filter files etc..

Ruby version compatibility

Overrides Tracker is built in [Continuous Integration] on Ruby 2.3+.

Code of Conduct

Everyone participating in this project's development, issue trackers and other channels is expected to follow our Code of Conduct

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Copyright

Copyright (c) 2023 Simon Meyborg. See MIT-LICENSE for details.

About

Overrides Tracker tracks all monkey patches in your codebase and the methods they override. It allows for comparison between builds to reveal changes you might miss otherwise.

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.txt

Code of conduct

Stars

Watchers

Forks

Packages

No packages published