obsolete.ChilliProject/lib/chili_project/liquid/liquid_ext/strainer.rb

45 lines
1.2 KiB
Ruby

#-- encoding: UTF-8
#-- copyright
# ChiliProject is a project management system.
#
# Copyright (C) 2010-2011 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# See doc/COPYRIGHT.rdoc for more details.
#++
# Required until https://github.com/Shopify/liquid/pull/87 got merged upstream
module ChiliProject
module Liquid
module LiquidExt
module Strainer
def self.included(base)
base.extend(ClassMethods)
base.class_eval do
unloadable
@@filters = []
end
end
module ClassMethods
def global_filter(filter)
raise ArgumentError, "Passed filter is not a module" unless filter.is_a?(Module)
@@filters << filter
end
def create(context)
strainer = self.new(context)
@@filters.each { |filter| strainer.extend(filter) }
strainer
end
end
end
end
end
end