Sha256: 2b1789949f13247c0d97d8d12855f3c2fc8f467115dc20658a8f3a0a135d98a2
Contents?: true
Size: 977 Bytes
Versions: 5
Compression:
Stored size: 977 Bytes
Contents
module React module JSX class JSXTransformer DEFAULT_ASSET_PATH = 'JSXTransformer.js' def initialize(options) @transform_options = { stripTypes: options.fetch(:strip_types, false), harmony: options.fetch(:harmony, false), } @asset_path = options.fetch(:asset_path, DEFAULT_ASSET_PATH) # If execjs uses therubyracer, there is no 'global'. Make sure # we have it so JSX script can work properly. js_code = 'var global = global || this;' + jsx_transform_code @context = ExecJS.compile(js_code) end def transform(code) result = @context.call('JSXTransformer.transform', code, @transform_options) result["code"] end # search for transformer file using sprockets - allows user to override # this file in his own application def jsx_transform_code ::Rails.application.assets[@asset_path].to_s end end end end
Version data entries
5 entries across 5 versions & 1 rubygems