Sha256: 455e3b458b3e5368aaac3e854a5eb61ebb3773f98d32063559f9b7a18d36ccfc

Contents?: true

Size: 845 Bytes

Versions: 13

Compression:

Stored size: 845 Bytes

Contents

# frozen_string_literal: true

module Spandx
  module Java
    module Parsers
      class Maven < ::Spandx::Core::Parser
        def match?(path)
          path.basename.fnmatch?('pom.xml')
        end

        def parse(path)
          document = Nokogiri.XML(path.read).tap(&:remove_namespaces!)
          document.search('//project/dependencies/dependency').map do |node|
            map_from(path, node)
          end
        end

        private

        def map_from(path, node)
          artifact_id = node.at_xpath('./artifactId').text
          group_id = node.at_xpath('./groupId').text
          version = node.at_xpath('./version').text

          ::Spandx::Core::Dependency.new(
            path: path,
            name: "#{group_id}:#{artifact_id}",
            version: version
          )
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
spandx-0.19.0 lib/spandx/java/parsers/maven.rb
spandx-0.18.3 lib/spandx/java/parsers/maven.rb
spandx-0.18.2 lib/spandx/java/parsers/maven.rb
spandx-0.18.1 lib/spandx/java/parsers/maven.rb
spandx-0.18.0 lib/spandx/java/parsers/maven.rb
spandx-0.17.0 lib/spandx/java/parsers/maven.rb
spandx-0.16.1 lib/spandx/java/parsers/maven.rb
spandx-0.16.0 lib/spandx/java/parsers/maven.rb
spandx-0.15.1 lib/spandx/java/parsers/maven.rb
spandx-0.15.0 lib/spandx/java/parsers/maven.rb
spandx-0.14.0 lib/spandx/java/parsers/maven.rb
spandx-0.13.5 lib/spandx/java/parsers/maven.rb
spandx-0.13.4 lib/spandx/java/parsers/maven.rb