dash-docs/_plugins/random.rb
2012-07-09 16:53:08 +01:00

23 lines
535 B
Ruby

class Random < Liquid::Tag
Syntax = /(\w+[.]?\w+)\s+(\w+)/o
def initialize(tag_name, markup, tokens)
if markup =~ Syntax
@collection_name = $1
@randomized_name = $2
else
raise SyntaxError.new("Syntax Error in 'random' - Valid syntax: random [source] [var]")
end
super
end
def render(context)
collection = context[@collection_name]
collection = collection.sort_by{rand}
context[@randomized_name] = collection
return
end
end
Liquid::Template.register_tag('random', Random)