Sha256: 4daf0e5546540531e724932cbce02ae2febda5b55ec4e04fcdf8d5c8fdda6dd5

Contents?: true

Size: 837 Bytes

Versions: 2

Compression:

Stored size: 837 Bytes

Contents

require "ice/handlers/base"
require 'eco'
require 'v8'

module Ice
  module Handlers
    module Eco
      def self.convert_template(template_text, vars = {})
        Base.convert_template(template_text) do |context|
          helpers = "#{File.dirname(__FILE__)}/../../../../js/lib/eco-path-helper.js"

          context.eval(open(helpers).read)
          context.eval(::Eco::Source.combined_contents)
          template = context["eco"]["compile"].call(template_text)
          template.call(vars.to_ice)
        end
      end

      def self.call(template)
        <<-ECO
          template_source = <<-ECO_TEMPLATE
            #{template.source}
          ECO_TEMPLATE

          #{Base.variables}

          Ice::Handlers::Eco.convert_template(template_source, variables.merge(local_assigns))
        ECO
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ice-0.5.1 lib/ice/handlers/eco/handler.rb
ice-0.5.0 lib/ice/handlers/eco/handler.rb