Sha256: 514bb2773bcebcc5bb01f9c8b8653fc41c4f0cb52aac1c5192365de2d7180c5b

Contents?: true

Size: 677 Bytes

Versions: 3

Compression:

Stored size: 677 Bytes

Contents

# encoding: UTF-8

require 'execjs'
require 'react/source'

module Middleman
  module React
    # Methods for invoking the JSXTransformer via ExecJS
    module JSX
      def self.context
        contents =
          # If execjs uses therubyracer, there is no 'global'. Make sure
          # we have it so JSX script can work properly.
          'var global = global || this;' +
          File.read(::React::Source.bundled_path_for('JSXTransformer.js'))
        @context ||= ExecJS.compile(contents)
      end

      def transform(code, opts = {})
        context.call('JSXTransformer.transform', code, opts)['code']
      end
      module_function :transform
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
middleman-react-0.13.3 lib/middleman-react/jsx.rb
middleman-react-0.13.1 lib/middleman-react/jsx.rb
middleman-react-0.12.1.1 lib/middleman-react/jsx.rb