module Sinatra::React::Helpers

Public Instance Methods

find_template(views, name, engine, &block) click to toggle source
Calls superclass method
# File lib/sinatra/react.rb, line 20
def find_template(views, name, engine, &block)
  if engine == Tilt::ReactTemplate
    views = Tilt::ReactTemplate.components
  end
  super(views, name, engine, &block)
end
react(component, opts = {}) click to toggle source
# File lib/sinatra/react.rb, line 8
def react(component, opts = {})
  req = Rack::Accept::MediaType.new(request.env['HTTP_ACCEPT'])
  if req.accept?('text/html')
    return render :jsx, component, opts
  elsif req.accept?('application/json')
    content_type :json
    return json_for_props(component, opts[:locals])
  else
    halt 406
  end
end

Private Instance Methods

json_for_props(component, props) click to toggle source
# File lib/sinatra/react.rb, line 29
def json_for_props(component, props)
  [
    Tilt::ReactTemplate.file_to_class_name(component.to_s),
    props
  ].to_json
end