Class: Anticuado::Java::Gradle

Inherits:
Base
  • Object
show all
Defined in:
lib/anticuado/java/gradle.rb

Constant Summary collapse

NO_VERSION =
"-"

Instance Attribute Summary

Attributes inherited from Base

#formatted_outdated_libraries, #outdated_libraries, #project_dir

Instance Method Summary collapse

Methods inherited from Base

#initialize, #update_lock

Constructor Details

This class inherits a constructor from Anticuado::Base

Instance Method Details

#format(outdated_parsed_json = nil, filter = %w(alpha beta rc cr m))) ⇒ Array

Returns Array include outdated data. If target project have no outdated data, then return blank array such as [].

Parameters:

  • outdated_parsed_json (String) (defaults to: nil)

    The result of command ‘gradle dependencyUpdates` and json parsed data

Returns:

  • (Array)

    Array include outdated data. If target project have no outdated data, then return blank array such as []



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# 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") ⇒ Object

Parameters:

  • revision (String) (defaults to: "release")

    “release”, “milestone” or “integration”. Default is “release”.

  • wrapper (Bool) (defaults to: false)

    Use gradle wrapper or use gradle directory.

  • format (String) (defaults to: "json")

    “plain”, “json” or “xml”. Default is “json”.

  • outdir (String) (defaults to: "build/dependencyUpdates")

    Path to output the result. Default is “build/dependencyUpdates”.



13
14
15
16
17
18
19
20
21
22
23
24
25
# 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) ⇒ JSON

Returns JSON data.

Parameters:

  • file_path (String)

    The result of command ‘gradle dependencyUpdates` with json format

Returns:

  • (JSON)

    JSON data



29
30
31
32
# File 'lib/anticuado/java/gradle.rb', line 29

def parse_json(file_path)
  str = File.read(file_path)
  @outdated_libraries = JSON.parse(str)
end