This idea started with a PR I sent to actual react-rails before it hit 1.0 release. I didn't have time to finish it then, and the structure of the react-rails codebase changed considerably, so it is now quite easy to write a renderer as a plugin.
This gem is a plugin to ract-rails providing two things:
React::ServerRendering::Concern::Instrumentation
- benchmarking instrumentation of the sort found in rails view rendering
- can be included into any Renderer to add Benchmarking to it
React::ServerRendering::BenchmarkRenderer
- a reference implementation of
React::ServerRendering::Concern::Instrumentation
Add this line to your application's Gemfile:
gem 'react-rails-benchmark_renderer'And then execute:
$ bundle Or install it yourself as:
$ gem install react-rails-benchmark_renderer To simply use the reference implementation, just edit your application.rb with:
config.react.server_renderer = React::ServerRendering::BenchmarkRenderer To roll your own renderer:
Use Concern::Implementation to enhance any React ServerRendering Renderer with benchmarking.
Usage is just like you can see in the reference implementation:
require "react/server_rendering/concerns/instrumentation" # Extends SprocketsRenderer for benchmarking in the Rails environment # - benchmarks rendering in the same manner as Rails view rendering is benchmarked by Rails module React module ServerRendering class BenchmarkRenderer < SprocketsRenderer include Concerns::Instrumentation end end endAfter checking out the repo, run bin/setup to install dependencies. Then, run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
- Fork it ( https://github.com/[my-github-username]/react-rails-benchmark_renderer/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request