ruby on rails - Rails3 and Liquid initialize error -
hi have rails 3 app gem liquid templates. problem error custom tag. using example of wiki.
in /lib/ created random.rb custom tag
class random < liquid::tag def initialize(tag_name, max, tokens) super @max = max.to_i end def render(context) rand(@max).to_s end end in initializers folder liquid.rb register tag.
liquid::template.register_tag('random', random) in console
@template = liquid::template.parse("{% random 5 %}") and error:
argumenterror: wrong number of arguments (3 0..1) /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/block.rb:28:in `initialize' /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/block.rb:28:in `new' /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/block.rb:28:in `parse' /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/document.rb:5:in `initialize' /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/template.rb:58:in `new' /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/template.rb:58:in `parse' /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/template.rb:46:in `parse' (irb):14 /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start' /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start' /users/artau/.rvm/gems/ruby-1.9.3-p385/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>' script/rails:6:in `require' script/rails:6:in `<main>' but if type:
1.9.3-p385 :004 > @template = liquid::template.parse("{{random 5}}") => #<liquid::template:0x007fa36b554108 @root=#<liquid::document:0x007fa36b553de8 @nodelist=[#<liquid::variable:0x007fa36b5536e0 @markup="random 5", @name="random", @filters=[]>]>> and when render:
1.9.3-p385 :005 > @template.render => "" any ideas?
thanks
i'm in rails 3.2.13
try rename class, because in standard ruby library there's class named random .
Comments
Post a Comment