diff --git a/lib/chili_project/liquid/liquid_ext/strainer.rb b/lib/chili_project/liquid/liquid_ext/strainer.rb index e038159db4d84102de8c570fd4b3fec9db840bd0..dac6d771e7ab134697917d1990a05dab2501e8bf 100644 --- a/lib/chili_project/liquid/liquid_ext/strainer.rb +++ b/lib/chili_project/liquid/liquid_ext/strainer.rb @@ -19,20 +19,22 @@ module ChiliProject module Strainer def self.included(base) base.extend(ClassMethods) - base.class_eval do - @@filters = [] - end + + base.class_attribute :filters, :instance_reader => false, :instance_writer => false + base.class_eval <<-RUBY, __FILE__, __LINE__ + 1 + self.filters = @@filters.values + RUBY end module ClassMethods def global_filter(filter) raise ArgumentError, "Passed filter is not a module" unless filter.is_a?(Module) - @@filters << filter + filters += [filter] end def create(context) strainer = self.new(context) - @@filters.each { |filter| strainer.extend(filter) } + filters.each { |filter| strainer.extend(filter) } strainer end end