reactrb/reactrb

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
# Change Log

All notable changes to this project will be documented in this file starting with v0.8.6.
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.

Changes are grouped as follows:
- **Added** for new features.
- **Changed** for changes in existing functionality.
- **Deprecated** for once-stable features to be removed in upcoming releases.
- **Removed** for deprecated features removed in this release.
- **Fixed** for any bug fixes.
- **Security** to invite users to upgrade in case of vulnerabilities.

<!--
Whitespace conventions:
- 4 spaces before ## titles
- 2 spaces before ### titles
- 1 spaces before normal text
 -->

## [0.12.0] - Unreleased

### Added

- `React::Server` is provided as a module wrapping the original `ReactDOMServer` API, require `react/server` to use it. (#186)
- `React::Config` is introduced, `environment` is the only config option provided for now. See [#204](https://github.com/ruby-hyperloop/hyper-react/issues/204) for usage details.

### Changed

- State syntax is now consistent with Hyperloop::Store, old syntax is deprecated. (#209, #97)

### Deprecated

- Current ref callback behavior is deprecated. Require `"react/ref_callback"` to get the updated behavior. (#188)
- `React.render_to_string` & `React.render_to_static_markup` is deprecated, use `React::Server.render_to_string` & `React::Server.render_to_static_markup` instead. (#186)
- `react/react-source` is deprecated, use `react/react-source-browser` or `react/react-source-server` instead. For most usecase, `react/react-source-browser` is sufficient. If you are using the built-in server side rendering feature, the actual `ReactDOMServer` is already provided by the `react-rails` gem. Therefore, unless you are building a custom server side rendering mechanism, it's not suggested to use `react/react-source-server` in browser code. (#186)

### Removed

- `react-latest` & `react-v1x` is removed. Use `react/react-source-browser` or `react/react-source-server` instead.
- Support for Ruby < 2.0 is removed. (#201)

### Fixed

- [NativeLibrary] Passing native JS object as props will raise exception. (#195)
- Returns better error message if result of rendering block is not suitable (#207)
- Batch all state changes and execute *after* rendering cycle (#206, #178)  (Code is now moved to Hyper::Store)  
  You can revert to the old behavior by defining the `React::State::ALWAYS_UPDATE_STATE_AFTER_RENDER = false`
- Memory Leak in render context fixed (#192)


## [0.11.0] - 2016-12-13

### Changed

- The whole opal-activesuppport is not loaded by default now. This gave us about 18% size reduction on the built file. If your code rely on any of the module which is not required by hyper-react, you need to require it yourself. (#135)

### Deprecated

- Current `React.render` behavior is deprecated. Require `"react/top_level_render"` to get the updated behavior. (#187)
- `React.is_valid_element` is deprecated in favor of `React.is_valid_element?`.
- `expect(component).to render('<div />')` is now deprecated in favor of `expect(component).to render_static_html('<div />')`, which is much clearer.

### Fixed

- `ReferenceError: window is not defined` error in prerender context with react-rails v1.10.0. (#196)
- State might not be updated using `React::Observable` from a param. (#175)
- Arity checking failed for `_react_param_conversion` & `React::Element#initialize` (#167)


## [0.10.0] - 2016-10-30

### Changed

- This gem is now renamed to `hyper-react`, see [UPGRADING](UPGRADING.md) for details.

### Fixed

- ReactJS functional stateless component could not be imported from `NativeLibrary`. Note that functional component is only supported in React v14+.  (#162)
- Prerender log got accumulated between reqeusts. (#176)

## [0.9.0] - 2016-10-19

### Added

- `react/react-source` is the suggested way to include ReactJS sources now. Simply require `react/react-source` immediately before the `require "reactrb"` in your Opal code will make it work.

### Deprecated

- `react-latest` & `react-v1x` is deprecated. Use `react/react-source` instead.

### Removed

- `opal-browser` is removed from runtime dependency. (#133)  You will have to add `gem 'opal-browser'` to your gemfile (recommended) or remove all references to opal-browser from your manifest files.

### Fixed

- `$window#on` in `opal-jquery` is broken. (#166)
- `Element#render` trigger unnecessary re-mounts when called multiple times. (#170)
- Gets rid of react warnings about updating state during render (#155)
- Multiple HAML classes (i.e. div.foo.bar) was not working (regression introduced in 0.8.8)
- Don't send nil (null) to form components as the value string (#157)
- Process `params` (props) correctly when using `Element#on` or `Element#render` (#158)
- Deprecate shallow param compare (#156)


## [0.8.8] - 2016-07-13

### Added

- More helpful error messages on render failures (#152)
- `Element#on('<my_event_name>')` subscribes to `my_event_name` (#153)

### Changed

- `Element#on(:event)` subscribes to `on_event` for reactrb components and `onEvent` for native components. (#153)

### Deprecated

- `Element#on(:event)` subscription to `_onEvent` is deprecated. Once you have changed params named `_on...` to `on_...` you can `require 'reactrb/new-event-name-convention.rb'` to avoid spurious react warning messages. (#153)


### Fixed

- The `Element['#container'].render...` method generates a spurious react error (#154)




## [0.8.7] - 2016-07-08


### Fixed

- Opal 0.10.x compatibility


## [0.8.6] - 2016-06-30


### Fixed

- Method missing within a component was being reported as `incorrect const name` (#151)