<commit_before># Fortitude Releases

## 0.9.5,

* Rails 5 compatibility: Fortitude now is fully compatible with Rails 5.0.0.1.
* Significant improvements in performance to our dispatching to #t, the Rails method to produce translations of
  localized strings. Localized Rails applications tend to use this method a _lot_, so its performance can have a
  big impact on overall application performance.
* A much better error message if you try to declare a method `static` when it hasn't been defined yet &mdash; this
  can often be the result of putting the `static` declaration above the method definition in the source file,
  rather than below it. (Thanks to [`tobymao`](https://github.com/tobymao) for the bug report!)
* Updated versions of Ruby and Rails that Travis CI tests against to the very latest.
* Fixed an issue where Fortitude wasn't properly respecting Rails' view paths. Fortitude templates could be found at
  alternate view paths, but our trick of namespacing views under `Views::` wouldn't apply. Now, it all works
  perfectly. (Thanks to [<NAME>](https://github.com/karlhe) for the bug report and example patch!)
* Fixed an issue where `#block_given?` always returned `true` inside a Fortitude widget's `#content` method, whether
  a block was supplied to it or not. (Thanks to [<NAME>](https://github.com/jdickey) for the bug report!)
* Fixed an incompatibility between Fortitude and Rails 4.2.5.1, since Rails 4.2.5.1 added a fifth parameter to
  `ActionView::PathResolver#find_templates`. (Thanks to [<NAME>](https://github.com/look) for the bug report!)
* Fixed incompatibilities with more-recently released versions of gems (`uglifier`, `rake`, `activesupport`) that
  otherwise broke compatibility with previous Ruby versions.
* Fixed an issue where Fortitude’s system for figuring out what the name of a Fortitude widget would be, based on its
  filename, could be confused by filenames ending in other extensions before `.rb` (for example, `.html.rb`).
* Eliminated a deprecation warning from Rails 5 caused by Fortitude's use of `render :text` internally.

## 0.9.4, 11 February 2015

* Fixed an issue where use of Rails' `form_for` or `fields_for` from within another `form_for` or `fields_for` block
  would not produce the correct output. (Thanks to [Leaf](https://github.com/leafo) for the bug report!)

## 0.9.3, 2 February 2015

* Fixed a memory leak when using `render :inline`, or certain other cases triggered by a user. (Fortitude widget
  classes know about all their subclasses, in order to enable proper propagation of configuration changes.
  If you created a subclass of a Fortitude widget that was intended to be single-use or otherwise temporary, it would
  not get garbage-collected, since its superclass would still maintain a reference to it. Fortitude now uses the
  [ref](https://github.com/ruby-concurrency/ref) gem in order to make this a weak reference, hence allowing it to
  be garbage-collected. `render :inline` creates a temporary subclass of a Fortitude widget, thus triggering exactly
  this issue.)

## 0.9.2, 22 January 2015

* Began writing lots of documentation for Fortitude, beginning with the reasons why you should use it.
* Fixed a single spec that caused failures under Rails 4.2.0 (which was an issue with the spec and something changed
  in Rails 4.2, not Fortitude).
* Fixed a bug where if you call `return` from inside a block passed to a tag method, the closing tags would not be
  output, resulting in invalid HTML. (Thanks to [Leaf](https://github.com/leafo) for the bug report!)
* Fixed a bug where if you raised an exception from inside a block passed to a tag method, the closing tags would not
  be output, resulting in invalid HTML.
* Added a couple of missing `form_for` helper methods (`button`, `submit`) that somehow I missed. (Thanks to<commit_msg>Add to CHANGES.<commit_after># Fortitude Releases

## 0.9.5,

* Rails 5 compatibility: Fortitude now is fully compatible with Rails 5.0.0.1.
* Significant improvements in performance to our dispatching to #t, the Rails method to produce translations of
  localized strings. Localized Rails applications tend to use this method a _lot_, so its performance can have a
  big impact on overall application performance.
* A much better error message if you try to declare a method `static` when it hasn't been defined yet &mdash; this
  can often be the result of putting the `static` declaration above the method definition in the source file,
  rather than below it. (Thanks to [`tobymao`](https://github.com/tobymao) for the bug report!)
* Updated versions of Ruby and Rails that Travis CI tests against to the very latest.
* Fixed an issue where Fortitude wasn't properly respecting Rails' view paths. Fortitude templates could be found at
  alternate view paths, but our trick of namespacing views under `Views::` wouldn't apply. Now, it all works
  perfectly. (Thanks to [<NAME>](https://github.com/karlhe) for the bug report and example patch!)
* Fixed an issue where `#block_given?` always returned `true` inside a Fortitude widget's `#content` method, whether
  a block was supplied to it or not. (Thanks to [<NAME>](https://github.com/jdickey) for the bug report!)
* Fixed an incompatibility between Fortitude and Rails 4.2.5.1, since Rails 4.2.5.1 added a fifth parameter to
  `ActionView::PathResolver#find_templates`. (Thanks to [<NAME>](https://github.com/look) for the bug report!)
* Fixed incompatibilities with more-recently released versions of gems (`uglifier`, `rake`, `activesupport`) that
  otherwise broke compatibility with previous Ruby versions.
* Fixed an issue where Fortitude’s system for figuring out what the name of a Fortitude widget would be, based on its
  filename, could be confused by filenames ending in other extensions before `.rb` (for example, `.html.rb`).
* Eliminated a deprecation warning from Rails 5 caused by Fortitude's use of `render :text` internally.
* Removed usage of `alias_method_chain` on Ruby 2.0 and later, in favor of `Module#prepend`. This removes deprecation
  warnings otherwise triggered by Rails 5. (Using `Module#prepend` causes problems in JRuby, so `alias_method_chain`
  is still used on JRuby instead.)

## 0.9.4, 11 February 2015

* Fixed an issue where use of Rails' `form_for` or `fields_for` from within another `form_for` or `fields_for` block
  would not produce the correct output. (Thanks to [Leaf](https://github.com/leafo) for the bug report!)

## 0.9.3, 2 February 2015

* Fixed a memory leak when using `render :inline`, or certain other cases triggered by a user. (Fortitude widget
  classes know about all their subclasses, in order to enable proper propagation of configuration changes.
  If you created a subclass of a Fortitude widget that was intended to be single-use or otherwise temporary, it would
  not get garbage-collected, since its superclass would still maintain a reference to it. Fortitude now uses the
  [ref](https://github.com/ruby-concurrency/ref) gem in order to make this a weak reference, hence allowing it to
  be garbage-collected. `render :inline` creates a temporary subclass of a Fortitude widget, thus triggering exactly
  this issue.)

## 0.9.2, 22 January 2015

* Began writing lots of documentation for Fortitude, beginning with the reasons why you should use it.
* Fixed a single spec that caused failures under Rails 4.2.0 (which was an issue with the spec and something changed
  in Rails 4.2, not Fortitude).
* Fixed a bug where if you call `return` from inside a block passed to a tag method, the closing tags would not be
  output, resulting in invalid HTML. (Thanks to [Leaf](https://github.com/leafo) for the bug report!)
* Fixed a bug where if you raised an exception from inside a block passed to a tag method, the closing tags would not
  be output, resulting in invalid HTML.
* Added a couple of missing `form_for` helper methods (`button`, `submit`) that somehow I missed. (Thanks to
{'fraction_non_alphanumeric': 0.07301107754279959, 'fraction_numerical': 0.012462235649546828, 'mean_word_length': 4.467997247075017, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 14, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 6, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '849563', 'n_tokens_mistral': 2225, 'n_tokens_neox': 2062, 'n_words': 1143}