class Anticuado::Java::Gradle

Constants

NO_VERSION

Public Instance Methods

format(outdated_parsed_json = nil, filter = %w(alpha beta rc cr m)) click to toggle source

@param [String] outdated_parsed_json The result of command `gradle dependencyUpdates` and json parsed data @return [Array] Array include outdated data.

If target project have no outdated data, then return blank array such as `[]`
# File lib/anticuado/java/gradle.rb, line 37
def format(outdated_parsed_json = nil, filter = %w(alpha beta rc cr m))
  @outdated_libraries = outdated_parsed_json unless outdated_parsed_json.nil?

  outdted = @outdated_libraries["outdated"]
  return [] if outdted.nil?
  return [] if outdted["dependencies"].nil?

  @formatted_outdated_libraries = outdted["dependencies"].map { |library|
    available_version = filter(filter, library["available"]["release"])
    latest_version = filter(filter, library["available"]["release"])

    unless available_version == NO_VERSION && latest_version == NO_VERSION
      {
          group_name: library["group"],
          library_name: library["name"],
          current_version: library["version"],
          available_version: available_version,
          latest_version: latest_version
      }
    end
  }.compact
end
outdated(wrapper = false, revision = "release", format = "json", outdir = "build/dependencyUpdates") click to toggle source

require: github.com/ben-manes/gradle-versions-plugin @param [String] revision “release”, “milestone” or “integration”. Default is “release”. @param [Bool] wrapper Use gradle wrapper or use gradle directory. @param [String] format “plain”, “json” or “xml”. Default is “json”. @param [String] outdir Path to output the result. Default is “build/dependencyUpdates”.

# File lib/anticuado/java/gradle.rb, line 13
def outdated(wrapper = false, revision = "release", format = "json", outdir = "build/dependencyUpdates")
  return puts "have no gradle command" if !wrapper && `which gradle`.empty?

  if @project_dir
    Dir.chdir(@project_dir) do
      `#{gradle(wrapper)} dependencyUpdates -Drevision=#{revision} -DoutputFormatter=#{format} -DoutputDir=#{outdir}`
    end
  else
    `#{gradle(wrapper)} dependencyUpdates -Drevision=#{revision} -DoutputFormatter=#{format} -DoutputDir=#{outdir}`
  end

  puts "output file is #{outdir}"
end
parse_json(file_path) click to toggle source

@param [String] file_path The result of command `gradle dependencyUpdates` with json format @return [JSON] JSON data

# File lib/anticuado/java/gradle.rb, line 29
def parse_json(file_path)
  str = File.read(file_path)
  @outdated_libraries = JSON.parse(str)
end

Private Instance Methods

filter(revisions, string) click to toggle source
# File lib/anticuado/java/gradle.rb, line 67
def filter(revisions, string)
  result = revisions.find { |qualifier| string.match(/(?i).*[.-]#{qualifier}[.\d-]*/) }
  return NO_VERSION if result
  string
end
gradle(wrapper = false) click to toggle source
# File lib/anticuado/java/gradle.rb, line 62
def gradle(wrapper = false)
  return "./gradlew" if wrapper
  "gradle"
end