language/java: document public API
This commit is contained in:
parent
1fdbc6fe5a
commit
372e8fb4b7
@ -28,6 +28,13 @@ module Language
|
||||
end
|
||||
private_class_method :find_openjdk_formula
|
||||
|
||||
# Returns the directory of the newest matching OpenJDK installation or
|
||||
# `nil` if none is available. When used in a {Formula}, there should be
|
||||
# a dependency and corresponding `version` for reproducible output.
|
||||
#
|
||||
# @api public
|
||||
# @param version OpenJDK version constraint which can be specific
|
||||
# (e.g. `"21"`) or a lower-bounded range (e.g. `"21+"`)
|
||||
sig { params(version: T.nilable(String)).returns(T.nilable(Pathname)) }
|
||||
def self.java_home(version = nil)
|
||||
find_openjdk_formula(version)&.opt_libexec
|
||||
@ -39,11 +46,36 @@ module Language
|
||||
end
|
||||
private_class_method :java_home_shell
|
||||
|
||||
# Returns a `JAVA_HOME` environment variable to use a specific OpenJDK.
|
||||
# Usually combined with either {Pathname#write_env_script} or
|
||||
# {Pathname#env_script_all_files}.
|
||||
#
|
||||
# ### Example
|
||||
#
|
||||
# Use `openjdk@21` for all commands:
|
||||
#
|
||||
# ```ruby
|
||||
# bin.env_script_all_files libexec/"bin", Language::Java.java_home_env("21")
|
||||
# ```
|
||||
#
|
||||
# @api public
|
||||
sig { params(version: T.nilable(String)).returns({ JAVA_HOME: String }) }
|
||||
def self.java_home_env(version = nil)
|
||||
{ JAVA_HOME: java_home_shell(version) }
|
||||
end
|
||||
|
||||
# Returns a `JAVA_HOME` environment variable to use a default OpenJDK.
|
||||
# Unlike {.java_home_env} the OpenJDK can be overridden at runtime.
|
||||
#
|
||||
# ### Example
|
||||
#
|
||||
# Use latest `openjdk` as default:
|
||||
#
|
||||
# ```ruby
|
||||
# bin.env_script_all_files libexec/"bin", Language::Java.overridable_java_home_env
|
||||
# ```
|
||||
#
|
||||
# @api public
|
||||
sig { params(version: T.nilable(String)).returns({ JAVA_HOME: String }) }
|
||||
def self.overridable_java_home_env(version = nil)
|
||||
{ JAVA_HOME: "${JAVA_HOME:-#{java_home_shell(version)}}" }
|
||||
|
Loading…
x
Reference in New Issue
Block a user