class Bibliothecary::Parsers::Julia

Public Class Methods

mapping() click to toggle source
# File lib/bibliothecary/parsers/julia.rb, line 6
def self.mapping
  {
    match_filename("REQUIRE", case_insensitive: true) => {
      kind: "manifest",
      parser: :parse_require,
    },
  }
end
parse_require(file_contents, options: {}) click to toggle source
# File lib/bibliothecary/parsers/julia.rb, line 17
def self.parse_require(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument
  deps = []
  file_contents.split("\n").each do |line|
    next if line.match(/^#/) || line.empty?
    split = line.split(/\s/)
    if line.match(/^@/)
      name = split[1]
      reqs = split[2, split.length].join(" ")
    else
      name = split[0]
      reqs = split[1, split.length].join(" ")
    end
    reqs = "*" if reqs.empty?
    next if name.empty?

    deps << Dependency.new(
      name: name,
      requirement: reqs,
      type: "runtime",
    )
  end
  deps
end