Class: Handlebars::Helper

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-handlebars/helper.rb

Instance Method Summary collapse

Constructor Details

#initialize(hbs, fn) ⇒ Helper

Returns a new instance of Helper.



5
6
7
8
# File 'lib/ruby-handlebars/helper.rb', line 5

def initialize(hbs, fn)
  @hbs = hbs
  @fn = fn
end

Instance Method Details

#apply(context, arguments = [], block = [], else_block = []) ⇒ Object



10
11
12
13
14
15
# File 'lib/ruby-handlebars/helper.rb', line 10

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 = []) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/ruby-handlebars/helper.rb', line 17

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