{"record":{"id":"f17d6dad17384a3c","repo":"Shopify/liquid","slug":"template-register-filter","errorCode":null,"errorMessage":"Template.register_filter","messagePattern":"Template\\.register_filter","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"lib/liquid/template.rb","lineNumber":68,"sourceCode":"      end\n\n      def file_system\n        Environment.default.file_system\n      end\n\n      def tags\n        Environment.default.tags\n      end\n\n      def register_tag(name, klass)\n        Deprecations.warn(\"Template.register_tag\", \"Environment#register_tag\")\n        Environment.default.register_tag(name, klass)\n      end\n\n      # Pass a module with filter methods which should be available\n      # to all liquid views. Good for registering the standard library\n      def register_filter(mod)\n        Deprecations.warn(\"Template.register_filter\", \"Environment#register_filter\")\n        Environment.default.register_filter(mod)\n      end\n\n      private def default_resource_limits=(limits)\n        Deprecations.warn(\"Template.default_resource_limits=\", \"Environment#default_resource_limits=\")\n        Environment.default.default_resource_limits = limits\n      end\n\n      def default_resource_limits\n        Environment.default.default_resource_limits\n      end\n\n      # creates a new <tt>Template</tt> object from liquid source code\n      # To enable profiling, pass in <tt>profile: true</tt> as an option.\n      # See Liquid::Profiler for more information\n      def parse(source, options = {})\n        environment = options[:environment] || Environment.default\n        new(environment: environment).parse(source, options)","sourceCodeStart":50,"sourceCodeEnd":86,"githubUrl":"https://github.com/Shopify/liquid/blob/807d45a6b3d4568e64e86b375e3702df2c7c860c/lib/liquid/template.rb#L50-L86","documentation":"Liquid::Template.register_filter is deprecated; global filters are now registered with Environment#register_filter. The shim delegates to Environment.default and warns via Deprecations, because filter registries are per-environment in current Liquid.","triggerScenarios":"Calling Liquid::Template.register_filter(MyFilterModule) in an initializer or support file.","commonSituations":"Apps adding money/date helper filters globally after upgrading Liquid; gems that extend Liquid's standard filter set.","solutions":["Call Liquid::Environment.default.register_filter(mod)","Or register the module on a dedicated Environment instance used for parsing"],"exampleFix":"// before\nLiquid::Template.register_filter(MyFilters)\n// after\nLiquid::Environment.default.register_filter(MyFilters)","handlingStrategy":"validation","validationCode":"Liquid::Environment.default.register_filter(mod)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Register filter modules through Environment at boot","Avoid class-level Template configuration in shared libraries","Audit initializers for Template.register_* calls on every Liquid upgrade"],"tags":["ruby","liquid","deprecation","filters"],"backgroundTag":"deprecated-api-usage","analyzedSha":"807d45a6b3d4568e64e86b375e3702df2c7c860c","analyzedAt":"2026-09-08T11:31:38.917Z","contentChangedAt":"2026-09-08T11:31:38.917Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}