mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
23 lines
535 B
Ruby
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)
|
|
|