A Java text block is an easy way to have a multiline string value. But there is a catch if we want to use a text block with the assertion method isEqualTo. Suppose you have written a piece of code that create a new string value where the line endings are defined using System.lineSeparator(). The string value would have the line ending \n on Linux and MacOS systems, and the line ending \r\n on Windows system. But a Java text block will always use the line ending \n on every platform, including the Windows platform. If you would run your tests on a Windows platform then the assertion using isEqualTo will fail, but the test will pass on Linux or MacOS systems. This is a problem if you are working with developers using different operating systems. Therefore it is better to use the method isEqualToNormalizingNewlines for these type of assertions. AssertJ will make sure the line endings are the same and the tests will pass independent of the operating system the tests are run on.
Continue reading →
In order to calculate an average for a list of numbers, file sizes, durations, or range of numbers, or a table with columns containing numeric values you can use the math avg command. This command is part of the math module of Nushell. When the input is a list then the result is a single value with the average of all values in the list. If you use a table as input the result is a record where the key is the column name and the value the average of all values in that column. Finally it is possible to have a single value as input and the result is the same value obviously.
Continue reading →
The math module in Nushell has a lot of useful commands to work with numeric values. You can use the math sum command to calculate the sum of a multiple numeric values. The input of the command can be a list of numbers, durations, file sizes, or a range or table with columns containing numeric values. The result is a single numeric value with the sum of all values in the input. The math sum command can also be used on a table with multiple numeric columns. It will return a record with the sum of all values for each column.
Continue reading →
In Nushell we can use a lot a math related commands to get for example the minimum and maximum values of a list of numbers. In the math module you can find the commands math min and math max. You can use these commands to get the minimum and maximum values of a list of numbers, durations, file sizes, a range and tables.
Continue reading →
To check if a string value starts or ends with a given string you can use the str starts-with and str ends-with commands. The command returns a boolean value: true if the string starts or ends with the given string and false otherwise. The commands are case sensitive by default. You can use the --ignore-case (or the shorthand -i) to ignore casing while checking if a the string starts or ends with a given string.
To input can be a string value and then that string value is checked. If the input is an array of string values, then each element is checked. It is also possible to check values in a record or table. You need to pass the names of the field(s) or column(s) that you want to check the string values of.
Continue reading →
A lot of commands have output displayed as table. It is possible to use different themes for tables. If you run the command table --list you get all available themes. At the moment the following themes are available: basic, compact, compact_double, default, heavy, light, none, reinforced, rounded, thin, with_love, psql, markdown, dots, restructured, ascii_rounded, basic_compact, single, double. You can use a theme with the table command by using the --theme option and the name of the theme. For example to have a different table theme for the ls command you can use ls | table --theme light.
If you want to change the theme for all table output you can set the configuration option $env.config.table.mode. To make this configuration setting permanent you can add it to config.nu file.
Continue reading →
When you start Nushell you can see a nice ASCII art elephant. That is Ellie a cute and friendly elephant mascot for Nushell. Elephants are popular as you can see them in other products like Mastodon and Gradle. It is possible to summon Ellie in your Nushell environment by running the ellie command. This command is part of the std library and you need to run use std ellie or std use * first.
Continue reading →
Groovy 5 adds the extension methods getExtension and getBaseName to the File and Path classes. You can invoke them as properties for a File and Path objects. Also the asBoolean method is added. This mean you can use a File or Path instance in a boolean context. If the underlying file exists true is returned and false otherwise.
Continue reading →
To get the names of columns in a table or the keys of a record you can use the columns command. The command returns a list of string values that are the column or key names. When the input is table the column names are returned, and when the input is a record the names of the keys are returned.
Continue reading →
Groovy (and Java) support using names for groups in regular expressions. The name of the group is defined using the syntax ?<name> where name must be replaced with the actual group name. This is very useful, because you can use the group name to access the value that is captured by the defined regular expression in a java.util.regex.Matcher object. Groovy supports for a long time accessing a group using the index operator. Since Groovy 5 you can use the name of the group to access the value as well. You can specify the name between square brackets ([<name>]) or use the name as property.
Continue reading →
The build-in HTTP client in Nushell can be used to interact with REST APIs and websites. If the URL you want to invoke has query parameters than you can use the url build-query command. The url build-query command transforms a record or table to URL encoded key/value pairs joined with an ampersand (&). Each key and value is separated by an equal sign (=). The command can expand a key with a list value to separate key/value pairs with the same key if the key is defined in a record.
Continue reading →
The string module contains a lot of useful commands to work with strings. If you want to join several values from a list into a single string you can use the str join command. The command accepts as argument the character(s) to use for joining the values. If you don’t specify the character(s) as argument the default value '' (empty string) is used.
Continue reading →