From baa544d9245d11fa0c403b58d0bbe00c24a5c793 Mon Sep 17 00:00:00 2001 From: KevinMarquette Date: Sun, 5 Feb 2017 00:00:58 -0800 Subject: [PATCH] reworked some files skip ci --- Chronometer/Classes/Chronometer.ps1 | 42 --------------------- Chronometer/Classes/MonitoredScript.ps1 | 49 +++++++++++++++++++++++++ Chronometer/chronometer.psm1 | 1 + Tests/Unit.Tests.ps1 | 8 ++++ 4 files changed, 58 insertions(+), 42 deletions(-) create mode 100644 Chronometer/Classes/MonitoredScript.ps1 diff --git a/Chronometer/Classes/Chronometer.ps1 b/Chronometer/Classes/Chronometer.ps1 index 159ffe2..fe867df 100644 --- a/Chronometer/Classes/Chronometer.ps1 +++ b/Chronometer/Classes/Chronometer.ps1 @@ -46,45 +46,3 @@ class Chronometer } } -class MonitoredScript -{ - [string]$Path - [System.Collections.ArrayList]$Line - - hidden $lastNode = $null - hidden $lastRecord = $null - - MonitoredScript() - { - $this.Line = [System.Collections.ArrayList]::New() - } - - [int] SetScript([string]$Path) - { - Get-Content -Path $Path | %{ $this.Line.Add( [ScriptLine]@{text=$_})} - return $this.Line.Count - } - - [void] AddExecution([hashtable]$node) - { - $record = $this.Line[$node.Breakpoint.Line-1] - $record.LineNumber = $node.Breakpoint.Line - 1 - - if($this.lastNode) - { - $duration = $node.ElapsedMilliseconds - $this.lastNode.ElapsedMilliseconds - } - else - { - $duration = $node.ElapsedMilliseconds - } - - if($this.lastRecord) - { - $this.lastRecord.AddExecutionTime($duration) - } - - $this.lastRecord = $record - $this.lastNode = $node - } -} \ No newline at end of file diff --git a/Chronometer/Classes/MonitoredScript.ps1 b/Chronometer/Classes/MonitoredScript.ps1 new file mode 100644 index 0000000..c2c04d7 --- /dev/null +++ b/Chronometer/Classes/MonitoredScript.ps1 @@ -0,0 +1,49 @@ +class MonitoredScript +{ + [string]$Path + [System.Collections.Generic.List[ScriptLine]]$Line + + hidden $lastNode = $null + hidden $lastRecord = $null + + [float]$ExecutionTime = 0 + [int]$LinesOfCode = 0 + + MonitoredScript() + { + $this.Line =New-Object 'System.Collections.Generic.List[ScriptLine]' + } + + [int] SetScript([string]$Path) + { + Get-Content -Path $Path | %{ $this.Line.Add( [ScriptLine]@{text=$_;path=$path})} + $this.LinesOfCode = $this.Line.Count + return $this.LinesOfCode + } + + [void] AddExecution([hashtable]$node) + { + # Line numbers start at 1 but the array starts at 0 + $lineNumber = $node.Breakpoint.Line - 1 + $record = $this.Line[$lineNumber] + $record.LineNumber = $lineNumber + + if($this.lastNode) + { + $duration = $node.ElapsedMilliseconds - $this.lastNode.ElapsedMilliseconds + } + else + { + $duration = $node.ElapsedMilliseconds + } + + if($this.lastRecord) + { + $this.lastRecord.AddExecutionTime($duration) + $this.ExecutionTime += $duration + } + + $this.lastRecord = $record + $this.lastNode = $node + } +} \ No newline at end of file diff --git a/Chronometer/chronometer.psm1 b/Chronometer/chronometer.psm1 index f63a722..19d1b5c 100644 --- a/Chronometer/chronometer.psm1 +++ b/Chronometer/chronometer.psm1 @@ -7,6 +7,7 @@ Write-Verbose 'Import Classes in order because of dependencies' $classList = @( 'ScriptLine', 'ScriptProfiler', + 'MonitoredScript', 'Chronometer' ) diff --git a/Tests/Unit.Tests.ps1 b/Tests/Unit.Tests.ps1 index 81d9a4f..ece0505 100644 --- a/Tests/Unit.Tests.ps1 +++ b/Tests/Unit.Tests.ps1 @@ -42,5 +42,13 @@ Describe "Basic unit tests" -Tags Build { {[ScriptProfiler]::Start()} | Should Not Throw } } + + Context "Class: MonitoredScript" { + {[MonitoredScript]::New()} | Should Not Throw + } + + Context "Class: MonitoredScript" { + {[MonitoredScript]::SetScript("$projectRoot\scratchfiles\example.ps1")} | Should Not Throw + } } } \ No newline at end of file