Sha256: da44e43d54d9ecfdcbcc55b825cb5792abbb471d543519daf1bf8df63475063e

Contents?: true

Size: 1.35 KB

Versions: 44

Compression:

Stored size: 1.35 KB

Contents

# config.ru
require 'bundler'
Bundler.require

Opal::Processor.source_map_enabled = true

opal = Opal::Server.new {|s|
  s.append_path './app'
  s.main = 'example'
  s.debug = true
}

map opal.source_maps.prefix do
  run opal.source_maps
end rescue nil

map '/assets' do
  run opal.sprockets
end

get '/comments.json' do
  comments = JSON.parse(open("./_comments.json").read)
  JSON.generate(comments)
end

get '/comments.js' do
  content_type "application/javascript"
  comments = JSON.parse(open("./_comments.json").read)
  "window.initial_comments = #{JSON.generate(comments)}"
end

post "/comments.json" do
  comments = JSON.parse(open("./_comments.json").read)
  comments << JSON.parse(request.body.read)
  File.write('./_comments.json', JSON.pretty_generate(comments, :indent => '    '))
  JSON.generate(comments)
end

get '/' do
  <<-HTML
    <!doctype html>
    <html>
      <head>
        <title>Hello React</title>
        <link rel="stylesheet" href="base.css" />
        <script src="http://cdnjs.cloudflare.com/ajax/libs/showdown/0.3.1/showdown.min.js"></script>
        <script src="/assets/example.js"></script>
        <script src="/comments.js"></script>
        <script>#{Opal::Processor.load_asset_code(opal.sprockets, "example.js")}</script>
      </head>
      <body>
        <div id="content"></div>
      </body>
    </html>
  HTML
end

run Sinatra::Application

Version data entries

44 entries across 44 versions & 2 rubygems

Version Path
reactrb-0.8.8 example/sinatra-tutorial/config.ru
reactrb-0.8.7 example/sinatra-tutorial/config.ru
reactrb-0.8.6 example/sinatra-tutorial/config.ru
reactrb-0.8.5 example/sinatra-tutorial/config.ru
reactrb-0.8.4 example/sinatra-tutorial/config.ru
reactrb-0.8.3 example/sinatra-tutorial/config.ru
reactrb-0.8.1 example/sinatra-tutorial/config.ru
reactrb-0.8.0 example/sinatra-tutorial/config.ru
reactrb-0.7.42 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.41 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.40 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.39 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.38 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.36 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.35 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.34 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.33 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.32 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.31 example/sinatra-tutorial/config.ru
reactive-ruby-0.7.30 example/sinatra-tutorial/config.ru