{"record":{"id":"7d8c2a7f047ba930","repo":"refinery/refinerycms","slug":"a-page-type-must-have-a-name-self-inspect","errorCode":null,"errorMessage":"A page type must have a name: #{self.inspect}","messagePattern":"A page type must have a name: #(.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"pages/lib/refinery/pages/types.rb","lineNumber":20,"sourceCode":"  module Pages\n    class Types < Array\n\n      def register(name, &block)\n        self.class.register(name, &block)\n      end\n\n      def find_by_name(name)\n        detect { |type| type.name.to_s.downcase == name.to_s.downcase}\n      end\n\n      class << self\n        def register(name, &block)\n          type = Type.new\n          type.name = name\n\n          yield type if block_given?\n\n          raise \"A page type must have a name: #{self.inspect}\" if type.name.blank?\n\n          registered << type\n        end\n\n        def registered\n          @registered_types ||= new\n        end\n      end\n\n    end\n  end\nend\n","sourceCodeStart":2,"sourceCodeEnd":33,"githubUrl":"https://github.com/refinery/refinerycms/blob/34438aae76d087246039cd24755187844d796737/pages/lib/refinery/pages/types.rb#L2-L33","documentation":"Error \"A page type must have a name: #{self.inspect}\" thrown in refinery/refinerycms.","triggerScenarios":"Thrown at pages/lib/refinery/pages/types.rb:20 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"}