Sha256: 2b38b053f43571d43756a423d6ddbffa7a4eff459d8d2e1f78e84d3d63356c94

Contents?: true

Size: 737 Bytes

Versions: 3

Compression:

Stored size: 737 Bytes

Contents

require 'execjs'
require 'react/jsx/processor'
require 'react/jsx/template'
require 'react/jsx/jsx_transformer'
require 'react/jsx/babel_transformer'
require 'react/jsx/sprockets_strategy'
require 'rails'

module React
  module JSX
    DEFAULT_TRANSFORMER = BabelTransformer
    mattr_accessor :transform_options, :transformer_class, :transformer

    # You can assign `config.react.jsx_transformer_class = `
    # to provide your own transformer. It must implement:
    # - #initialize(options)
    # - #transform(code) => new code
    self.transformer_class = DEFAULT_TRANSFORMER

    def self.transform(code)
      self.transformer ||= transformer_class.new(transform_options)
      self.transformer.transform(code)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
react-rails-1.11.0 lib/react/jsx.rb
react-rails-1.10.0 lib/react/jsx.rb
react-rails-1.9.0 lib/react/jsx.rb