Sha256: 567e255a659891f42baf7b1cd9ec143f225dfe32b9b62fbcfc673b8c0201a22c

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

require 'roda'
require 'tilt/sass'
require 'tilt/opal'
require 'opal/builder_processors'
require 'opal-browser'

class OpalBuilder < Opal::Builder
  attr_accessor :build_source_map

  def to_s
    if @build_source_map
      super + "\n" + source_map.to_data_uri_comment
    else
      super
    end
  end
end

class App < Roda
  js_builder = OpalBuilder.new(stubs: []) #'opal'
  js_builder.build_source_map = ENV['RACK_ENV'] == 'development'
  js_builder.append_paths('app')

  plugin :assets, js: ['application.rb'],
                  js_opts: { builder: js_builder },
                  path: '.',
                  js_dir: 'app',
                  timestamp_paths: true,
                  precompiled: ENV['RACK_ENV'] != 'development' ? 'public/assets/assets-precompiled.json' : nil
  plugin :public

  route do |r|
    r.public
    r.assets

    r.root do
      <<~END
	      <!doctype html>
        <html>
          <head>
            <title>My application</title>
          </head>
          <body>
            #{ assets :js }
          </body>
        </html>
      END
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
opal-browser-0.3.5 examples/integrations/dynamic-roda-tilt/app.rb
opal-browser-0.3.4 examples/integrations/dynamic-roda-tilt/app.rb
atome-opal-browser-0.3.9.5 examples/integrations/dynamic-roda-tilt/app.rb
opal-browser-0.3.3 examples/integrations/dynamic-roda-tilt/app.rb
opal-browser-0.3.2 examples/integrations/dynamic-roda-tilt/app.rb
opal-browser-0.3.1 examples/integrations/dynamic-roda-tilt/app.rb
opal-browser-0.3.0 examples/integrations/dynamic-roda-tilt/app.rb