Skip to content

Commit 42e497d

Browse files
committed
Merging changes from remote master.
2 parents 26e00a3 + f9855be commit 42e497d

File tree

3 files changed

+133
-109
lines changed

3 files changed

+133
-109
lines changed

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2018 Jason Archer
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# ObjectHelp
22

3-
3+
Console formatted help for .NET and CIM (WMI) objects.
44

55
A fork of ObjectHelp by Oisin Grehan.
66

77
**Major Features:**
88

9+
- Display local help, no required downloads
10+
- Display online help in a browser
11+
912
## Install
1013

1114
Inspect

Src/Public/Get-NetHelp.ps1

Lines changed: 108 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -15,127 +15,127 @@ function Get-NetHelp {
1515
[string]$Method
1616
)
1717

18-
if ($Docs = Get-HelpLocation $Type) {
19-
$PSCmdlet.WriteVerbose("Found '$Docs'.")
18+
# if ($Docs = Get-HelpLocation $Type) {
19+
# $PSCmdlet.WriteVerbose("Found '$Docs'.")
2020

21-
$TypeName = $Type.FullName
22-
if ($Method) {
23-
$Selector = "M:$TypeName.$Method"
24-
} else { ## TODO: Property?
25-
$Selector = "T:$TypeName"
26-
}
21+
# $TypeName = $Type.FullName
22+
# if ($Method) {
23+
# $Selector = "M:$TypeName.$Method"
24+
# } else { ## TODO: Property?
25+
# $Selector = "T:$TypeName"
26+
# }
2727

28-
## get summary, if possible
29-
$Help = Import-LocalNetHelp $Docs $Selector
28+
# ## get summary, if possible
29+
# $Help = Import-LocalNetHelp $Docs $Selector
3030

31-
if ($Help) {
32-
$Help #| Format-AssemblyHelp
33-
} else {
34-
Write-Warning "While some local documentation was found, it was incomplete."
31+
# if ($Help) {
32+
# $Help #| Format-AssemblyHelp
33+
# } else {
34+
# Write-Warning "While some local documentation was found, it was incomplete."
35+
# }
36+
# }
37+
38+
$HelpObject = New-Object PSObject -Property @{
39+
Details = New-Object PSObject -Property @{
40+
Name = $Type.Name
41+
Namespace = $Type.Namespace
42+
SuperClass = $Type.BaseType
3543
}
44+
Properties = @{}
45+
Constructors = @()
46+
Methods = @{}
47+
RelatedLinks = @(
48+
New-Object PSObject -Property @{Title="Online Version"; Link = Get-HelpUri $Type}
49+
)
50+
}
51+
$HelpObject.Details.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Details")
52+
$HelpObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo")
53+
if ($Detailed) {
54+
$HelpObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#DetailedView")
55+
# Write-Error "Local detailed help not available for type '$Type'."
3656
} else {
37-
$HelpObject = New-Object PSObject -Property @{
38-
Details = New-Object PSObject -Property @{
39-
Name = $Type.Name
40-
Namespace = $Type.Namespace
41-
SuperClass = $Type.BaseType
42-
}
43-
Properties = @{}
44-
Constructors = @()
45-
Methods = @{}
46-
RelatedLinks = @(
47-
New-Object PSObject -Property @{Title="Online Version"; Link = Get-HelpUri $Type}
48-
)
49-
}
50-
$HelpObject.Details.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Details")
51-
$HelpObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo")
52-
if ($Detailed) {
53-
$HelpObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#DetailedView")
54-
# Write-Error "Local detailed help not available for type '$Type'."
55-
} else {
56-
$HelpObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net")
57-
}
57+
$HelpObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net")
58+
}
5859

59-
foreach ($NetProperty in $Type.DeclaredProperties) {
60-
$PropertyObject = New-Object PSObject -Property @{
61-
Name = $NetProperty.Name
62-
Type = $NetProperty.PropertyType
63-
}
64-
$PropertyObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#Property")
65-
$HelpObject.Properties.Add($NetProperty.Name, $PropertyObject)
60+
foreach ($NetProperty in $Type.DeclaredProperties) {
61+
$PropertyObject = New-Object PSObject -Property @{
62+
Name = $NetProperty.Name
63+
Type = $NetProperty.PropertyType
6664
}
65+
$PropertyObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#Property")
66+
$HelpObject.Properties.Add($NetProperty.Name, $PropertyObject)
67+
}
6768

68-
foreach ($NetConstructor in $Type.DeclaredConstructors | Where-Object {$_.IsPublic}) {
69-
$ConstructorObject = New-Object PSObject -Property @{
70-
Name = $Type.Name
71-
Namespace = $Type.Namespace
72-
Parameters = $NetConstructor.GetParameters()
73-
}
74-
$ConstructorObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#Constructor")
75-
76-
$HelpObject.Constructors += $ConstructorObject
69+
foreach ($NetConstructor in $Type.DeclaredConstructors | Where-Object {$_.IsPublic}) {
70+
$ConstructorObject = New-Object PSObject -Property @{
71+
Name = $Type.Name
72+
Namespace = $Type.Namespace
73+
Parameters = $NetConstructor.GetParameters()
7774
}
78-
79-
foreach ($NetMethod in $Type.DeclaredMethods | Where-Object {$_.IsPublic -and (-not $_.IsSpecialName)} | Group-Object Name) {
80-
$MethodObject = New-Object PSObject -Property @{
81-
Name = $NetMethod.Name
82-
Static = $NetMethod.Group[0].IsStatic
83-
Constructor = $NetMethod.Group[0].IsConstructor
84-
ReturnType = $NetMethod.Group[0].ReturnType
85-
Overloads = @(
86-
$NetMethod.Group | ForEach-Object {
87-
$MethodOverload = New-Object PSObject -Property @{
88-
Name = $NetMethod.Name
89-
Static = $_.IsStatic
90-
ReturnType = $_.ReturnType
91-
Parameters = @(
92-
$_.GetParameters() | ForEach-Object {
93-
New-Object PSObject -Property @{
94-
Name = $_.Name
95-
ParameterType = $_.ParameterType
96-
}
75+
$ConstructorObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#Constructor")
76+
77+
$HelpObject.Constructors += $ConstructorObject
78+
}
79+
80+
foreach ($NetMethod in $Type.DeclaredMethods | Where-Object {$_.IsPublic -and (-not $_.IsSpecialName)} | Group-Object Name) {
81+
$MethodObject = New-Object PSObject -Property @{
82+
Name = $NetMethod.Name
83+
Static = $NetMethod.Group[0].IsStatic
84+
Constructor = $NetMethod.Group[0].IsConstructor
85+
ReturnType = $NetMethod.Group[0].ReturnType
86+
Overloads = @(
87+
$NetMethod.Group | ForEach-Object {
88+
$MethodOverload = New-Object PSObject -Property @{
89+
Name = $NetMethod.Name
90+
Static = $_.IsStatic
91+
ReturnType = $_.ReturnType
92+
Parameters = @(
93+
$_.GetParameters() | ForEach-Object {
94+
New-Object PSObject -Property @{
95+
Name = $_.Name
96+
ParameterType = $_.ParameterType
9797
}
98-
)
99-
Class = $HelpObject.Details.Name
100-
Namespace = $HelpObject.Details.Namespace
101-
}
102-
$MethodOverload.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#MethodOverload")
103-
$MethodOverload
98+
}
99+
)
100+
Class = $HelpObject.Details.Name
101+
Namespace = $HelpObject.Details.Namespace
104102
}
105-
)
106-
}
107-
$MethodObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#Method")
108-
109-
$HelpObject.Methods.Add($NetMethod.Name, $MethodObject)
103+
$MethodOverload.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#MethodOverload")
104+
$MethodOverload
105+
}
106+
)
107+
}
108+
$MethodObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#Method")
109+
110+
$HelpObject.Methods.Add($NetMethod.Name, $MethodObject)
111+
}
112+
113+
if ($Property) {
114+
$PropertyObject = $HelpObject.Properties[$Property]
115+
116+
if ($PropertyObject) {
117+
Add-Member -InputObject $PropertyObject -Name Class -Value $HelpObject.Details.Name -MemberType NoteProperty
118+
Add-Member -InputObject $PropertyObject -Name Namespace -Value $HelpObject.Details.Namespace -MemberType NoteProperty
119+
Add-Member -InputObject $PropertyObject -Name SuperClass -Value $HelpObject.Details.SuperClass -MemberType NoteProperty
120+
$PropertyObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#PropertyDetail")
121+
return $PropertyObject
122+
} else {
123+
throw "Property named '$Property' not found."
110124
}
111-
112-
if ($Property) {
113-
$PropertyObject = $HelpObject.Properties[$Property]
114-
115-
if ($PropertyObject) {
116-
Add-Member -InputObject $PropertyObject -Name Class -Value $HelpObject.Details.Name -MemberType NoteProperty
117-
Add-Member -InputObject $PropertyObject -Name Namespace -Value $HelpObject.Details.Namespace -MemberType NoteProperty
118-
Add-Member -InputObject $PropertyObject -Name SuperClass -Value $HelpObject.Details.SuperClass -MemberType NoteProperty
119-
$PropertyObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#PropertyDetail")
120-
return $PropertyObject
121-
} else {
122-
throw "Property named '$Property' not found."
123-
}
124-
} elseif ($Method) {
125-
$MethodObject = $HelpObject.Methods[$Method]
126-
127-
if ($MethodObject) {
128-
Add-Member -InputObject $MethodObject -Name Class -Value $HelpObject.Details.Name -MemberType NoteProperty
129-
Add-Member -InputObject $MethodObject -Name Namespace -Value $HelpObject.Details.Namespace -MemberType NoteProperty
130-
Add-Member -InputObject $MethodObject -Name SuperClass -Value $HelpObject.Details.SuperClass -MemberType NoteProperty
131-
$MethodObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#MethodDetail")
132-
133-
return $MethodObject
134-
} else {
135-
throw "Method named '$Method' not found."
136-
}
125+
} elseif ($Method) {
126+
$MethodObject = $HelpObject.Methods[$Method]
127+
128+
if ($MethodObject) {
129+
Add-Member -InputObject $MethodObject -Name Class -Value $HelpObject.Details.Name -MemberType NoteProperty
130+
Add-Member -InputObject $MethodObject -Name Namespace -Value $HelpObject.Details.Namespace -MemberType NoteProperty
131+
Add-Member -InputObject $MethodObject -Name SuperClass -Value $HelpObject.Details.SuperClass -MemberType NoteProperty
132+
$MethodObject.PSObject.TypeNames.Insert(0, "ObjectHelpInfo#Net#MethodDetail")
133+
134+
return $MethodObject
137135
} else {
138-
return $HelpObject
136+
throw "Method named '$Method' not found."
139137
}
138+
} else {
139+
return $HelpObject
140140
}
141141
}

0 commit comments

Comments
 (0)