Sha256: f5228f9ba09b2e6fd4c843592686f8962b196eb138825244e3cd5c41bf199405

Contents?: true

Size: 715 Bytes

Versions: 3

Compression:

Stored size: 715 Bytes

Contents

require 'rubygems'
require 'v8'

class Object
  def to_ice
    nil
  end
end

[FalseClass, TrueClass, Numeric, String].each do |cls|
  cls.class_eval do
    def to_ice
      self
    end
  end
end

class Array
  def to_ice
    map &:to_ice
  end
end

class Hash
  def to_ice
    res = {}
    each_pair do |key,value|
      res[key] = value.to_ice
    end
    res
  end
end



module Ice
  def self.convert_template(template_text, vars = {})

    V8::Context.new do |cxt|
      cxt.load "#{File.dirname(__FILE__)}/parser.js"

      vars.each_pair do |key, value|
        cxt[key] = value.to_ice
      end

      jst = cxt['Jst']
      return @evaled = jst.evaluate(jst.compile(template_text), {})
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ice-0.2.4 lib/ice.rb
ice-0.2.3 lib/ice.rb
ice-0.2.2 lib/ice.rb