on_send

in lib/rubocop/cop/primer/primer_octicon.rb [38:69]


        def on_send(node)
          return unless node.method_name == :octicon
          return unless node.arguments?

          kwargs = kwargs(node)

          return unless kwargs.type == :hash

          attributes = kwargs.keys.map(&:value)

          
          return unless attributes.all? { |attribute| attribute.match?(ATTRIBUTE_REGEX) }
          
          return if octicon_size_attributes(kwargs) == INVALID_ATTRIBUTE

          
          classes = classes(kwargs)

          return if classes == INVALID_ATTRIBUTE

          
          if classes.present?
            system_arguments = ::Primer::Classify::Utilities.classes_to_hash(classes)
            invalid_classes = (system_arguments[:classes]&.split(" ") || []).select { |class_name| ::Primer::Classify::Validation.invalid?(class_name) }

            
            return if invalid_classes.present?
          end

          add_offense(node, message: INVALID_MESSAGE)
        end