class Handlebars::Helper
Public Class Methods
new(hbs, fn)
click to toggle source
# File lib/ruby-handlebars/helper.rb, line 5 def initialize(hbs, fn) @hbs = hbs @fn = fn end
Public Instance Methods
apply(context, arguments = [], block = [], else_block = [])
click to toggle source
# File lib/ruby-handlebars/helper.rb, line 14 def apply(context, arguments = [], block = [], else_block = []) arguments = [arguments] unless arguments.is_a? Array args = [context] + arguments.map {|arg| arg.eval(context)} + split_block(block, else_block) @fn.call(*args) end
apply_as(context, arguments = [], as_arguments = [], block = [], else_block = [])
click to toggle source
# File lib/ruby-handlebars/helper.rb, line 21 def apply_as(context, arguments = [], as_arguments = [], block = [], else_block = []) arguments = [arguments] unless arguments.is_a? Array as_arguments = [as_arguments] unless as_arguments.is_a? Array args = [context] + arguments.map {|arg| arg.eval(context)} + as_arguments.map(&:name) + split_block(block, else_block) @fn.call(*args) end
arity()
click to toggle source
# File lib/ruby-handlebars/helper.rb, line 10 def arity @fn.arity end
Private Instance Methods
ensure_block(block)
click to toggle source
# File lib/ruby-handlebars/helper.rb, line 39 def ensure_block(block) new_block = Tree::Block.new([]) block.each {|item| new_block.add_item(item) } unless block.nil? new_block end
split_block(block, else_block)
click to toggle source
# File lib/ruby-handlebars/helper.rb, line 31 def split_block(block, else_block) if else_block [ensure_block(block), ensure_block(else_block)] else [ensure_block(block)] end end