File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -68,9 +68,12 @@ def template(*args)
6868 # @yieldparam arguments [Object] the arguments (optional)
6969 # @yieldparam options [Hash] the options hash (optional)
7070 # @see https://handlebarsjs.com/api-reference/runtime.html#handlebars-registerhelper-name-helper
71- def register_helper ( name , &block )
72- attach ( name , &block )
73- call ( :registerHelper , [ name . to_s , name . to_sym ] , eval : true )
71+ def register_helper ( name = nil , **helpers , &block )
72+ helpers [ name ] = block if name
73+ helpers . each do |n , f |
74+ attach ( n , &f )
75+ call ( :registerHelper , [ n . to_s , n . to_sym ] , eval : true )
76+ end
7477 end
7578
7679 # Unregisters a previously registered helper.
Original file line number Diff line number Diff line change 146146
147147 describe "#register_helper" do
148148 let ( :name ) { :helper }
149- let ( :function ) { -> ( ctx , *args , opts ) { } }
149+ let ( :function ) { -> ( _ctx , *_args , _opts ) { rendered } }
150150 let ( :template ) { "{{#{ name } name name=name}}" }
151151
152152 before do
158158 expect ( engine ) . to respond_to ( :register_helper )
159159 end
160160
161- describe "rendering" do
161+ context "with positional parameters" do
162+ before do
163+ engine . register_helper ( name , &function )
164+ end
165+
166+ describe "rendering" do
167+ include_examples "rendering"
168+ end
169+ end
170+
171+ context "with keyword parameters" do
172+ before do
173+ engine . register_helper ( name => function )
174+ end
175+
176+ describe "rendering" do
177+ include_examples "rendering"
178+ end
179+ end
180+
181+ describe "parameters" do
162182 describe "the first parameter" do
163183 it "is the context" do
164184 render_context . transform_keys! ( &:to_s )
You can’t perform that action at this time.
0 commit comments