Groovy 5 adds support for using an index variable in a for-in loop. You must define an extra variable as first argument of the for loop. This variable will be used as index variable. For each iteration of the code in the for-in loop the value of this index variable is incremented by 1. You can use this value in the for loop.
Continue reading →
Groovy 5 adds a new utility method to create an ascii bar chart. You can use the bar
method in the org.codehaus.groovy.util.StringUtil
class. You can pass a value, a minimum and maximum value and optinally specify the width of the bar chart. The result is a String
value consisting of a number of "blocks". A block could be whole, but also 1/8 eights of the block are used to get a nice looking bar chart. How many of these values are needed is based on the input arguments. With this method you have a nice way to format number values on a command-line.
Continue reading →
Groovy is known for exending standard Java classes with extra methods or extra arguments for existing methods. Since Groovy 5 you can use a range as argument for the List.subList
method. The range is used to determine the begin and end index of the original List
instance to return.
Continue reading →
Groovy 5 introduced some extra overloaded methods for the collectEntries
method, that can be used to transform an iterable object into a Map
.
You can now pass a closure or function as arguments to transform the original iterable element into the key and value for the resulting Map
. It is now also possible to pass a so-called collector Map
that will be used to extend with new key/value pairs.
Besides extra overloaded method signatures for collectEntries
Groovy 5 also adds the new methods withCollectedKeys
and withCollectedValues
. With the method withCollectedKeys
a closure or function can passed to create the keys for the new Map
based on the elements from the iterable. The value of the key/value pair is the unchanged element. You use the method withCollectedValues
to pass a closure or function to create the value for the new key/value pair in the resulting Map
. The key will be the original element from the iterable.
Continue reading →
The Nushell command enumerate
adds an index value to each item in a list. The index value is stored in an extra column named index
. You can use this column to filter data based on the index value.
Continue reading →
Nushell has very useful commands to filter lists and tables. When you have a list with null values, you can use the compact
command to filter out the null values. With the option --empty
you can also filter out empty items like empty strings, empty lists and empty records. If you want to filter out rows in a table where a column contains a null value, you can use the compact
command followed by the name of the column.
Continue reading →
Nushell has some nice built-in commands to get randomized data. The random
command can be used to get random numbers, strings, and more. You can use the dice
subcommand to get random numbers between 1 and 6. The command returns a list of integers. With the option --dice
you can specify how many times to throw the dice. By default the dice has 6 sides, but you can use the option --sides
to change that. You could roll a dice with 2 sides, like flipping a coin, or roll a dice with 10 sides.
Continue reading →
The nice thing about the http
command in Nushell is that you can interact with HTTP endpoints without the need to install any external tools. You can use several subcommands like get
, post
, put
, delete
and patch
. Each of these commands has the options to specify request headers. You can use the option --headers
or the short version -H
followed by a list of header keys and values.
Continue reading →
The http
command in Nushell can be used to interact with HTTP endpoints. You can post data to an endpoint using the post
subcommand. If you want to post JSON data than you can simply use a record data structure and use the argument --content-type application/json
(or the shorthand -t application/json
). Nushell will automatically convert the record data structure to JSON and use it as the body of the HTTP request.
Continue reading →
Nushell has a built-in command to invoke HTTP requests: http
. You don’t need an external tool like curl
or httpie
to make HTTP requests. There a lot of options to use with the http
command. One of them is the --full
or shorter -f
option to return a table with extra details of the HTTP request and response. The request and response headers, the body and status are returned in the table. You can easily get information from the table with all the default selection options for a table structure.
Continue reading →
Nushell has a lot of commands to work with strings. The str kebab-case
command can be used to convert a string to kebab case. Kebab-case is a string that contains only lowercase letters and words are separated by hyphens.
Continue reading →
SDKMAN! is as powerful tool to install and manage software development kits (SDKs) and tools, like Java, Groovy, Gradle, Maven, Spring Boot and Quarkus. If you want to see if a new version of a SDK or tool is available, you can use the sdk upgrade
command. This command will list all outdated SDKs and tools. The installed version and the latest version are shown for each SDK and tool. To see if a single SDK or tool is outdated, you can use the name of the SDK or tool as argument to the sdk upgrade
command.
Continue reading →