{"record":{"id":"958432bc8428933f","repo":"refinery/refinerycms","slug":"a-tab-must-have-a-name-tab-inspect","errorCode":null,"errorMessage":"A tab MUST have a name!: #{tab.inspect}","messagePattern":"A tab MUST have a name!: #(.+?)","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"pages/lib/refinery/pages/tab.rb","lineNumber":24,"sourceCode":"    end\n\n    def self.tabs_for_template(template)\n      return tabs unless template\n\n      tabs.select do |tab|\n        tab.templates.include?('all') || tab.templates.include?(template)\n      end\n    end\n\n    class Tab\n      attr_accessor :name, :partial, :templates\n\n      def self.register(&block)\n        tab = self.new\n\n        yield tab\n\n        raise ArgumentError, \"A tab MUST have a name!: #{tab.inspect}\" if tab.name.blank?\n        raise ArgumentError, \"A tab MUST have a partial!: #{tab.inspect}\" if tab.partial.blank?\n\n        tab.templates = %w[all] if tab.templates.blank?\n        tab.templates = Array(tab.templates)\n\n        tab\n      end\n\n    protected\n\n      def initialize\n        Refinery::Pages.tabs << self # add me to the collection of registered page tabs\n      end\n    end\n\n  end\nend\n","sourceCodeStart":6,"sourceCodeEnd":42,"githubUrl":"https://github.com/refinery/refinerycms/blob/34438aae76d087246039cd24755187844d796737/pages/lib/refinery/pages/tab.rb#L6-L42","documentation":"Error \"A tab MUST have a name!: #{tab.inspect}\" thrown in refinery/refinerycms.","triggerScenarios":"Thrown at pages/lib/refinery/pages/tab.rb:24 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"34438aae76d087246039cd24755187844d796737","analyzedAt":"2026-08-23T06:03:41.094Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}