NEWS.md

Summary

Maintainability
Test Coverage
# News

User-visible changes worth mentioning.

## 5.0.0 (unreleased)

- Drop end-of-life'd versions of rails: 5.2 and 6.0, and ruby 3.0
- Test with current versions of Rails: 6.1, 7.0, 7.1
- Convert project to GitHub Actions
- Mark 3 tests as pending to the open bug on deleted models

## 4.0.3

- Add webrick as a development dependency
- [#363] Fix: `warning: already initialized constant Merit::*` messages
- [#357] Fix `merit_actions` migration template

## 4.0.2

- [#355, #356] Add index on merit_actions.processed column
- [#354] Fix Rails autoloader deprecation warnings
  Requires wrapping `Merit::Badge.create` with `Rails.application.reloader.to_prepare`
- Test with Ruby 3 and Rails 6.1 (excludes Rails 5.2 with Ruby 3, that errors out)
- [#288] Don’t send “removed badge” notifications when user doesn’t have the badge

## 4.0.1

- [#351] Fix bug on generating migrations

## 4.0.0

- Stop testing on Rails 5.1
- Drop support for mongoid
- Drop v2 upgrade generators
- Enable Zeitwerk gem mode (and renames internal merit constants)

## 3.0.3

- Test against Ruby 2.6 and Rails 6
- Use `find_each` in favor of `map` in `Merit::Action.check_unprocessed`
- Allow finding badges defined with symbol names
- Remove `Badge#last_granted` method (deprecated in merit <2.0)

## 3.0.2

- [#287] Make Sash an optional dependency, fixing issues in Rails 5.1.
- [#297] Initialize merit once both for API or non-API apps
- Updates dependencies

## 3.0.1

- [#282] Run action controller load hook only once
- [#284] Add migration version to active record migrations
- Add RELEASING.md document

## 3.0.0

- [#276] Drops Rails <5 version support. Drops deprecated `action_filter` call.
- Fix deprecation warnings

## 2.4.0

- [#260] Works with Rails 5

## 2.3.4

- [#247] Fix Ruby warnings
- [#252] Bug fix: `uninitialized constant Merit::PointRules (NameError)` while
    installing merit.

## 2.3.3

- [#215] Bug fix in API where a `BadgeSash` would be created without failures
  with a nil `badge_id`.
- Add validations to `BadgesSash`
- Rename generated migration files to explicitly name merit
- README improvements

## 2.3.2

- [#218] Implement I18n for internationalization support
- Tests with Ruby 2.2. Ignores EOL Rails 4.0.
- Adds CONTRIBUTING document

## 2.3.1

- [#204] Sash creation bugfix on certain conditions
- [733da49] Improve examples and docs for points `on` option

## 2.3.0

- [#206] Allow Rule to find Badge by `badge_id`
- [#197] SVG badges in favor of PNG in the readme.
- [#195] migrations refactor
- Tests with Rails 4.2

## 2.2.0

- [#181] Rescue `ActiveRecord` only if constant is defined (doesn't trigger
  errors in other ORMs).
- [#184] Namespaces `Badge` calls inside of `Merit::`. Prevents errors if the
  app using merit has a model named Badge
- [#189] Fixes issue when objects needed to grant reputation are already deleted
  from the database. Before, merit was either failing with exceptions or
  ignoring reputation changes; now it works as expected.

## 2.1.2

- Improves observer API.

## 2.1.1

- [#158] Migrations bug fix.

## 2.1.0

- [#148] Mongoid support
- Docs, tests, internals polishing.

## 2.0.0

- [#146] Fixes loading paths
- [#140] Points Categories feature
- Removes deprecated methods

## 1.9.0

- [#134] Bug fix: find sashes only when rules apply.
- Adds deprecation warnings.

## 1.8.0

- [#128] Finishes Observer implementation so client applications can be
  notified when reputation changes.
- [#123] Work towards mongoid support. Still work in progress.

## 1.7.1

- [#121] Adds "Uninstall Merit" rake task.
- [#124] Thread safe configuration instance variable.
- [#133] Fixes Rails 4 + protected_attributes bug.
- Starts this Changelog!