# master
# 2.17.0
* Slots return stripped HTML, removing leading and trailing whitespace.
*Jason Long, Joel Hawksley*
# 2.16.0
* Add `--sidecar` option to the erb, haml and slim generators. Places the generated template in the sidecar directory.
*Michael van Rooijen*
# 2.15.0
* Add support for templates as ViewComponent::Preview examples.
*Juan Manuel Ramallo
# 2.14.1
* Allow using `render_inline` in test when the render monkey patch is disabled with `config.view_component.render_monkey_patch_enabled = false` in versions of Rails < 6.1.
*Clément Joubert*
* Fix kwargs warnings in slotable.
Fixes:
```
view_component/lib/view_component/slotable.rb:98: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
view_component/test/app/components/slots_component.rb:18: warning: The called method `initialize' is defined here
```
*Eileen M. Uchitelle*
# 2.14.0
* Add `config.preview_paths` to support multiple locations of component preview files. Deprecate `config.preview_path`.
*Tomas Celizna*
* Only print warning about a missing capybara dependency if the `DEBUG` environment variable is set.
*Richard Macklin*
# 2.13.0
* Add the ability to disable the render monkey patch with `config.view_component.render_monkey_patch_enabled`. In versions of Rails < 6.1, add `render_component` and `render_component_to_string` methods which can be used for rendering components instead of `render`.
*Johannes Engl*
# 2.12.0
* Implement Slots as potential successor to Content Areas.
*Jens Ljungblad, Brian Bugh, Jon Palmer, Joel Hawksley*
# 2.11.1
* Fix kwarg warnings in Ruby 2.7.
*Joel Hawksley*
# 2.11.0
* Ensure Rails configuration is available within components.
*Trevor Broaddus*
* Fix bug where global Rails helpers are inaccessible from nested components. Before, `helpers` was pointing to parent component.
*Franco Sebregondi*
# 2.10.0
* Raise an `ArgumentError` with a helpful message when Ruby cannot parse a component class.
*Max Beizer*
# 2.9.0
* Cache components per-request in development, preventing unnecessary recompilation during a single request.
*Felipe Sateler*
# 2.8.0
* Add `before_render`, deprecating `before_render_check`.
*Joel Hawksley*
# 2.7.0
* Add `rendered_component` method to `ViewComponent::TestHelpers` which exposes the raw output of the rendered component.
*Richard Macklin*
* Support sidecar directories for views and other assets.
*Jon Palmer*
# 2.6.0
* Add `config.view_component.preview_route` to set the endpoint for component previews. By default `/rails/view_components` is used.
*Juan Manuel Ramallo*
* Raise error when initializer omits with_collection_parameter.
*Joel Hawksley*
# 2.5.1
* Compile component before rendering collection.
*Rainer Borene*
# v2.5.0
* Add counter variables when rendering collections.
*Frank S*
* Add the ability to access params from preview examples.
*Fabio Cantoni*
# v2.4.0
* Add `#render_to_string` support.
*Jarod Reid*
* Declare explicit dependency on `activesupport`.
*Richard Macklin*
* Remove `autoload`s of internal modules (`Previewable`, `RenderMonkeyPatch`, `RenderingMonkeyPatch`).
*Richard Macklin*
* Remove `capybara` dependency.
*Richard Macklin*
# v2.3.0
* Allow using inline render method(s) defined on a parent.
*Simon Rand*
* Fix bug where inline variant render methods would never be called.
*Simon Rand*
* ViewComponent preview index views use Rails internal layout instead of application's layout
*Juan Manuel Ramallo*
# v2.2.2
* Add `Base.format` for better compatibility with `ActionView::Template`.
*Joel Hawksley*
# v2.2.1
* Fix bug where template could not be found if `inherited` was redefined.
*Joel Hawksley*
# v2.2.0
* Add support for `config.action_view.annotate_template_file_names` (coming in Rails 6.1).
*Joel Hawksley*
* Remove initializer requirement from the component.
*Vasiliy Ermolovich*
# v2.1.0
* Support rendering collections (e.g., `render(MyComponent.with_collection(@items))`).
*Tim Clem*
# v2.0.0
* Move to `ViewComponent` namespace, removing all references to `ActionView`.
* The gem name is now `view_component`.
* ViewComponent previews are now accessed at `/rails/view_components`.
* ViewComponents can _only_ be rendered with the instance syntax: `render(MyComponent.new)`. Support for all other syntaxes has been removed.
* ActiveModel::Validations have been removed. ViewComponent generators no longer include validations.
* In Rails 6.1, no monkey patching is used.
* `to_component_class` has been removed.
* All gem configuration is now in `config.view_component`.
# v1.17.0
* Support Ruby 2.4 in CI.
*Andrew Mason*
* ViewComponent generators do not not prompt for content requirement.
*Joel Hawksley*
* Add post-install message that gem has been renamed to `view_component`.
*Joel Hawksley*
# v1.16.0
* Add `refute_component_rendered` test helper.
*Joel Hawksley*
* Check for Rails before invocation.
*Dave Paola*
* Allow components to be rendered without a template file (aka inline component).
*Rainer Borene*
# v1.15.0
* Re-introduce ActionView::Component::TestHelpers.
*Joel Hawksley*
* Bypass monkey patch on Rails 6.1 builds.
*Joel Hawksley*
* Make `ActionView::Helpers::TagHelper` available in Previews.
```ruby
def with_html_content
render(MyComponent.new) do
tag.div do
content_tag(:span, "Hello")
end
end
end
```
*Sean Doyle*
# v1.14.1
* Fix bug where generator created invalid test code.
*Joel Hawksley*
# v1.14.0
* Rename ActionView::Component::Base to ViewComponent::Base
*Joel Hawksley*
# v1.13.0
* Allow components to be rendered inside controllers.
*Joel Hawksley*
* Improve backtraces from exceptions raised in templates.
*Blake Williams*
# v1.12.0
* Revert: Remove initializer requirement for Ruby 2.7+
*Joel Hawksley*
* Restructure Railtie into Engine
*Sean Doyle*
* Allow components to override before_render_check
*Joel Hawksley*
# v1.11.1
* Relax Capybara requirement.
*Joel Hawksley*
# v1.11.0
* Add support for Capybara matchers.
*Joel Hawksley*
* Add erb, haml, & slim template generators
*Asger Behncke Jacobsen*
# v1.10.0
* Deprecate all `render` syntaxes except for `render(MyComponent.new(foo: :bar))`
*Joel Hawksley*
# v1.9.0
* Remove initializer requirement for Ruby 2.7+
*Dylan Clark*
# v1.8.1
* Run validation checks before calling `#render?`.
*Ash Wilson*
# v1.8.0
* Remove the unneeded ComponentExamplesController and simplify preview rendering.
*Jon Palmer*
* Add `#render?` hook to easily allow components to be no-ops.
*Kyle Fox*
* Don't assume ApplicationController exists.
*Jon Palmer*
* Allow some additional checks to overrided render?
*Sergey Malykh*
* Fix generator placing namespaced components in the root directory.
*Asger Behncke Jacobsen*
* Fix cache test.
*Sergey Malykh*
# v1.7.0
* Simplify validation of templates and compilation.
*Jon Palmer*
* Add support for multiple content areas.
*Jon Palmer*
# v1.6.2
* Fix Uninitialized Constant error.
*Jon Palmer*
* Add basic github issue and PR templates.
*Dylan Clark*
* Update readme phrasing around previews.
*Justin Coyne*
# v1.6.1
* Allow Previews to have no layout.
*Jon Palmer*
* Bump rack from 2.0.7 to 2.0.8.
*Dependabot*
* Compile components on application boot when eager loading is enabled.
*Joel Hawksley*
* Previews support content blocks.
*Cesario Uy*
* Follow Rails conventions. (refactor)
*Rainer Borene*
* Fix edge case issue with extracting variants from less conventional source_locations.
*Ryan Workman*
# v1.6.0
* Avoid dropping elements in the render_inline test helper.
*@dark-panda*
* Add test for helpers.asset_url.
*Christopher Coleman*
* Add rudimentary compatibility with better_html.
*Joel Hawksley*
* Template-less variants fall back to default template.
*Asger Behncke Jacobsen*, *Cesario Uy*
* Generated tests use new naming convention.
*Simon Træls Ravn*
* Eliminate sqlite dependency.
*Simon Dawson*
* Add support for rendering components via #to_component_class
*Vinicius Stock*
# v1.5.3
* Add support for RSpec to generators.
*Dylan Clark, Ryan Workman*
* Require controllers as part of setting autoload paths.
*Joel Hawksley*
# v1.5.2
* Disable eager loading initializer.
*Kasper Meyer*
# v1.5.1
* Update railties class to work with Rails 6.
*Juan Manuel Ramallo*
# v1.5.0
Note: `actionview-component` is now loaded by requiring `actionview/component`, not `actionview/component/base`.
* Fix issue with generating component method signatures.
*Ryan Workman, Dylan Clark*
* Create component generator.
*Vinicius Stock*
* Add helpers proxy.
*Kasper Meyer*
* Introduce ActionView::Component::Previews.
*Juan Manuel Ramallo*
# v1.4.0
* Fix bug where components broke in application paths with periods.
*Anton, Joel Hawksley*
* Add support for `cache_if` in component templates.
*Aaron Patterson, Joel Hawksley*
* Add support for variants.
*Juan Manuel Ramallo*
* Fix bug in virtual path lookup.
*Juan Manuel Ramallo*
* Preselect the rendered component in render_inline.
*Elia Schito*
# v1.3.6
* Allow template file names without format.
*Joel Hawksley*
* Add support for translations.
*Juan Manuel Ramallo*
# v1.3.5
* Re-expose `controller` method.
*Michael Emhofer, Joel Hawksley*
* Gem version numbers are now accessible through `ActionView::Component::VERSION`
*Richard Macklin*
* Fix typo in README
*ars moriendi*
# v1.3.4
* Template errors surface correct file and line number.
*Justin Coyne*
* Allow access to `request` inside components.
*Joel Hawksley*
# v1.3.3
* Do not raise error when sidecar files that are not templates exist.
*Joel Hawksley*
# v1.3.2
* Support rendering views from inside component templates.
*Patrick Sinclair*
# v1.3.1
* Fix bug where rendering nested content caused an error.
*Joel Hawksley, Aaron Patterson*
# v1.3.0
* Components are rendered with enough controller context to support rendering of partials and forms.
*Patrick Sinclair, Joel Hawksley, Aaron Patterson*
# v1.2.1
* `actionview-component` is now tested against Ruby 2.3/2.4 and Rails 5.0.0.
# v1.2.0
* The `render_component` test helper has been renamed to `render_inline`. `render_component` has been deprecated and will be removed in v2.0.0.
*Joel Hawksley*
* Components are now rendered with `render MyComponent, foo: :bar` syntax. The existing `render MyComponent.new(foo: :bar)` syntax has been deprecated and will be removed in v2.0.0.
*Joel Hawksley*
# v1.1.0
* Components now inherit from ActionView::Component::Base
*Joel Hawksley*
# v1.0.1
* Always recompile component templates outside production.
*Joel Hawksley, John Hawthorn*
# v1.0.0
This release extracts the `ActionView::Component` library from the GitHub application.
It will be published on RubyGems under the existing `actionview-component` gem name, as @chancancode has passed us ownership of the gem.