Sha256: a88495d73ee5c338a0500a3894979aabe02aa68a601fbc2fdb58be3b2ba4b571

Contents?: true

Size: 561 Bytes

Versions: 3

Compression:

Stored size: 561 Bytes

Contents

require 'stringio'
require 'volt'
require 'volt/server/rack/component_code'

class ComponentHandler
  def initialize(component_paths)
    @component_paths = component_paths
  end

  def call(env)
    req = Rack::Request.new(env)

    # TODO: Sanatize template path
    component_name = req.path.strip.gsub(/^\/components\//, '').gsub(/[.]js$/, '')

    code = ComponentCode.new(component_name, @component_paths).code

    javascript_code = Opal.compile(code)

    [200, {"Content-Type" => "text/html; charset=utf-8"}, StringIO.new(javascript_code)]
  end


end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
volt-0.7.14 lib/volt/server/component_handler.rb
volt-0.7.13 lib/volt/server/component_handler.rb
volt-0.7.12 lib/volt/server/component_handler.rb