Skip to content

Instantly share code, notes, and snippets.

@timtyrrell
Created April 24, 2013 15:13
Show Gist options
  • Save timtyrrell/5452893 to your computer and use it in GitHub Desktop.
Save timtyrrell/5452893 to your computer and use it in GitHub Desktop.
Tried to plug therubyrhino into handbars.rb
± rake
/Users/ttyrrell/.rvm/rubies/jruby-1.7.3/bin/jruby -S rspec ./spec/handlebars_spec.rb../Users/ttyrrell/.rvm/gems/jruby-1.7.3@handlbarsrb/gems/rspec-core-2.13.1/lib/rspec/core/example.rb:275 warning: singleton on non-persistent Java type Java::OrgMozillaJavascript::EcmaError (http://wiki.j
ruby.org/Persistence)F.F..F...
Failures:
1) Handlebars::Context a simple template can use any Ruby object as a context
Failure/Error: Unable to find matching line from backtrace Java::OrgMozillaJavascript::EcmaError:
TypeError: Cannot find default value for object. (/Users/ttyrrell/code/handlebars.rb/vendor/handlebars/lib/handlebars/compiler/compiler.js#550(Function)#8)
# org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687) # org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
# org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3693) # org.mozilla.javascript.ScriptRuntime.typeError1(ScriptRuntime.java:3705)
# org.mozilla.javascript.ScriptableObject.getDefaultValue(ScriptableObject.java:976) # org.mozilla.javascript.ScriptableObject.getDefaultValue(ScriptableObject.java:895)
# org.mozilla.javascript.ScriptRuntime.toString(ScriptRuntime.java:761) # org.mozilla.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:3774)
# org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2269) # org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2251)
# org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1317) # org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
# org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
# org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
# org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269) # org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
# org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_runtime_js_30._c_anonymous_4(./vendor/handlebars/lib/handlebars/runtime.js:29)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_runtime_js_30.call(./vendor/handlebars/lib/handlebars/runtime.js)
# org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
# org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
# org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
# org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_compiler_compiler_js_29._c_anonymous_94(./vendor/handlebars/lib/handlebars/compiler/compiler.js:1262) # org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_compiler_compiler_js_29.call(./vendor/handlebars/lib/handlebars/compiler/compiler.js)
# org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
# org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_compiler_compiler_js_29.call(./vendor/handlebars/lib/handlebars/compiler/compiler.js)
# sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
# sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
# java.lang.reflect.Method.invoke(Method.java:597)
# org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:425)
# org.jruby.javasupport.JavaMethod.invokeDirect(JavaMethod.java:292)
# org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:44)
# org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:76)
# org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:296)
# org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:72)
# org.jruby.ast.FCallManyArgsNode.interpret(FCallManyArgsNode.java:60)
# org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
# org.jruby.ast.RescueNode.executeBody(RescueNode.java:224)
# org.jruby.ast.RescueNode.interpret(RescueNode.java:119)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
# org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182)
# org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:188)
# org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
# org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
...................more
2) Handlebars::Context registering Helpers doesn't nee a context or arguments to the call
Failure/Error: Unable to find matching line from backtrace
Java::OrgMozillaJavascript::EcmaError:
TypeError: Cannot read property "twice" from undefined (/Users/ttyrrell/code/handlebars.rb/vendor/handlebars/lib/handlebars/compiler/compiler.js#550(Function)#13)
# org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
# org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
# org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3693)
# org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3712)
# org.mozilla.javascript.ScriptRuntime.undefReadError(ScriptRuntime.java:3725)
# org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1483)
# org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1239)
# org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
# org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
# org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
# org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
# org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
# org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_runtime_js_50._c_anonymous_4(./vendor/handlebars/lib/handlebars/runtime.js:29)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_runtime_js_50.call(./vendor/handlebars/lib/handlebars/runtime.js)
# org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
# org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
# org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
# org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_compiler_compiler_js_49._c_anonymous_94(./vendor/handlebars/lib/handlebars/compiler/compiler.js:1262)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_compiler_compiler_js_49.call(./vendor/handlebars/lib/handlebars/compiler/compiler.js)
# org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
# org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
# org.mozilla.javascript.gen._Users_ttyrrell_code_handlebars_rb_vendor_handlebars_lib_handlebars_compiler_compiler_js_49.call(./vendor/handlebars/lib/handlebars/compiler/compiler.js)
# sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
# sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
# java.lang.reflect.Method.invoke(Method.java:597)
# org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:425)
# org.jruby.javasupport.JavaMethod.invokeDirect(JavaMethod.java:292)
# org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:44)
# org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:76)
# org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:296)
# org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:72)
# org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:38)
# org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:141)
# org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306)
# org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136)
# org.jruby.ast.CallSpecialArgNode.interpret(CallSpecialArgNode.java:65)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
# org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
# org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:172)
# org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306)
# org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136)
# org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:64)
...................more
3) Handlebars::Context dynamically loading partial can be done with a function
Failure/Error: compile("I am {{>missing}}").call(:what => 'shoes').should eql "I am unable to find my missing shoes"
Rhino::JSError:
NoMethodError: undefined method `what' for #<Java::OrgMozillaJavascript::NativeObject:0x79b2dc6>
# at ./vendor/handlebars/lib/handlebars/runtime.js:75 (anonymous)
# at ./vendor/handlebars/lib/handlebars/compiler/compiler.js#550(Function):7 (anonymous)
# at ./vendor/handlebars/lib/handlebars/runtime.js:29 (anonymous)
# at ./vendor/handlebars/lib/handlebars/compiler/compiler.js:1262 (anonymous)
# ./lib/handlebars/template.rb:10:in `call'
# ./spec/handlebars_spec.rb:64:in `(root)'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment