jdhitsolutions / MyNumber

A demonstration PowerShell module of a class-based tool that creates a custom number object.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MyNumber

🎓 A demonstration class-based module that creates a number object. The functionality of the module isn't that practical. But it can serve as a model of how you might build a class-based PowerShell tool.

The module should work on Windows PowerShell and PowerShell 7, including cross-platform. It is intended for educational purposes.

Install the latest version from the PowerShell Gallery.

Install-Module MyNumber

You can also use the Microsoft.PowerShell.PSResourceGet module.

Install-PSResource MyNumber -scope AllUsers

The class is defined in MyNumber.psm1. Functionality is exposed through a set of functions.

The module also includes custom format and type extensions. The examples shown below may not reflect these changes.

PS C:\> $x = New-MyNumber 11
PS C:\> $x


Number     : 11
Square     : 121
Cube       : 1331
Sqrt       : 3.3166247903554
Log        : 2.39789527279837
Sine       : -0.999990206550703
Cosine     : 0.00442569798805079
Tangent    : -225.950846454195
CircleArea : 380.132711084365
Inverse    : 0.0909090909090909
IsEven     : False
IsPrime    : True
Exp        : 59874.1417151978
Factorial  : 39916800
Factors    : {1, 11}
Custom     : 0

PS C:\> $x | Set-MyNumber -value 123


Number     : 123
Square     : 15129
Cube       : 1860867
Sqrt       : 11.0905365064094
Log        : 4.81218435537242
Sine       : -0.459903490689591
Cosine     : -0.887968906691855
Tangent    : 0.517927471585655
CircleArea : 47529.15525616
Inverse    : 0.00813008130081301
IsEven     : False
IsPrime    : False
Exp        : 2.61951731874906E+53
Factorial  : 1.21463043670253E+205
Factors    : {1, 3, 41, 123}
Custom     : 0

PS C:\> $x | Convert-MyNumber -ToHex
7b

PS C:\> Convert-MyNumber 1024 -ToBinary
10000000000

You can also create a number with a custom script block.

PS C:\> New-MyNumber 77 -CustomScriptBlock {Param($x) [char][int]$x }


Number     : 77
Square     : 5929
Cube       : 456533
Sqrt       : 8.77496438739212
Log        : 4.34380542185368
Sine       : 0.999520158580731
Cosine     : -0.0309750317312165
Tangent    : -32.2685757759344
CircleArea : 18626.5028431339
Inverse    : 0.012987012987013
IsEven     : False
IsPrime    : False
Exp        : 2.75851345452317E+33
Factorial  : 1.45183092028286E+113
Factors    : {1, 7, 11, 77}
Custom     : M

You should include a parameter in your script block for the number value. It will be passed as an argument when calculating the value.

You can only access the class definition through the functions.

About

A demonstration PowerShell module of a class-based tool that creates a custom number object.

License:MIT License


Languages

Language:PowerShell 100.0%