Changeset 7512 for lang/powershell

Show
Ignore:
Timestamp:
03/05/08 21:13:32 (9 months ago)
Author:
coma2n
Message:

lang/powershell/PSCustomProviders/trunk: 引数の検証チェックを追加

Location:
lang/powershell/PSCustomProviders/trunk
Files:
10 added
10 modified

Legend:

Unmodified
Added
Removed
  • lang/powershell/PSCustomProviders/trunk/default.build

    r7503 r7512  
    4242    </target> 
    4343 
     44        <target name="export-format" 
     45                description="�t�H�[�}�b�g�t�@�C����erShell��OME�f�B���N�g���ɃG�N�X�|�[�g���܂�"> 
     46                <copy todir="${environment::get-folder-path('Personal')}/WindowsPowerShell/format"> 
     47                        <fileset basedir="format"> 
     48                                <include name="*.ps1xml" /> 
     49                        </fileset> 
     50                </copy> 
     51        </target> 
     52         
    4453</project> 
  • lang/powershell/PSCustomProviders/trunk/format/ps2ch.format.ps1xml

    r7503 r7512  
    2020--> 
    2121<Configuration> 
    22     <ViewDefinitions> 
    23         <View> 
    24             <Name>Dotnet.PowerShell.PS2ch.PS2chBoard</Name> 
    25             <ViewSelectedBy> 
    26                 <TypeName>Dotnet.PowerShell.PS2ch.PS2chBoard</TypeName> 
    27             </ViewSelectedBy> 
     22        <ViewDefinitions> 
     23                <View> 
     24                        <Name>Dotnet.PowerShell.PS2ch.PS2chBoard</Name> 
     25                        <ViewSelectedBy> 
     26                                <TypeName>Dotnet.PowerShell.PS2ch.PS2chBoard</TypeName> 
     27                        </ViewSelectedBy> 
    2828 
    29             <TableControl> 
    30                 <TableHeaders> 
    31                     <TableColumnHeader> 
    32                         <Label>板名</Label> 
    33                         <Width>20</Width> 
    34                     </TableColumnHeader> 
    35                     <TableColumnHeader> 
    36                         <Label>カテゴリー</Label> 
    37                         <Width>20</Width> 
    38                     </TableColumnHeader> 
    39                 </TableHeaders> 
     29                        <TableControl> 
     30                                <TableHeaders> 
     31                                        <TableColumnHeader> 
     32                                                <Label>板名</Label> 
     33                                                <Width>20</Width> 
     34                                        </TableColumnHeader> 
     35                                        <TableColumnHeader> 
     36                                                <Label>カテゴリー</Label> 
     37                                                <Width>20</Width> 
     38                                        </TableColumnHeader> 
     39                                </TableHeaders> 
    4040                                 
    41                 <TableRowEntries> 
    42                     <TableRowEntry> 
    43                         <TableColumnItems> 
    44                             <TableColumnItem> 
    45                                 <PropertyName>Name</PropertyName> 
    46                             </TableColumnItem> 
    47                             <TableColumnItem> 
    48                                 <PropertyName>Category</PropertyName> 
    49                             </TableColumnItem> 
    50                         </TableColumnItems> 
    51                     </TableRowEntry> 
    52                 </TableRowEntries> 
    53             </TableControl> 
    54         </View> 
    55          
    56         <View> 
    57             <Name>Dotnet.PowerShell.PS2ch.PS2chThread</Name> 
    58             <ViewSelectedBy> 
    59                 <TypeName>Dotnet.PowerShell.PS2ch.PS2chThread</TypeName> 
    60             </ViewSelectedBy> 
     41                                <TableRowEntries> 
     42                                        <TableRowEntry> 
     43                                                <TableColumnItems> 
     44                                                        <TableColumnItem> 
     45                                                                <PropertyName>Name</PropertyName> 
     46                                                        </TableColumnItem> 
     47                                                        <TableColumnItem> 
     48                                                                <PropertyName>Category</PropertyName> 
     49                                                        </TableColumnItem> 
     50                                                </TableColumnItems> 
     51                                        </TableRowEntry> 
     52                                </TableRowEntries> 
     53                        </TableControl> 
     54                </View> 
     55                 
     56                <View> 
     57                        <Name>Dotnet.PowerShell.PS2ch.PS2chThread</Name> 
     58                        <ViewSelectedBy> 
     59                                <TypeName>Dotnet.PowerShell.PS2ch.PS2chThread</TypeName> 
     60                        </ViewSelectedBy> 
    6161 
    62             <TableControl> 
    63                 <TableHeaders> 
    64                     <TableColumnHeader> 
    65                         <Label>ID</Label> 
    66                         <Width>15</Width> 
    67                     </TableColumnHeader> 
    68                     <TableColumnHeader> 
    69                         <Label>スレッド名</Label> 
    70                         <Width>40</Width> 
    71                     </TableColumnHeader> 
    72                     <TableColumnHeader> 
    73                         <Label>レス数</Label> 
    74                         <Width>10</Width> 
    75                     </TableColumnHeader> 
    76                 </TableHeaders> 
     62                        <TableControl> 
     63                                <TableHeaders> 
     64                                        <TableColumnHeader> 
     65                                                <Label>ID</Label> 
     66                                                <Width>15</Width> 
     67                                        </TableColumnHeader> 
     68                                        <TableColumnHeader> 
     69                                                <Label>スレッド名</Label> 
     70                                                <Width>40</Width> 
     71                                        </TableColumnHeader> 
     72                                        <TableColumnHeader> 
     73                                                <Label>レス数</Label> 
     74                                                <Width>10</Width> 
     75                                        </TableColumnHeader> 
     76                                </TableHeaders> 
    7777                                 
    78                 <TableRowEntries> 
    79                     <TableRowEntry> 
    80                         <TableColumnItems> 
    81                             <TableColumnItem> 
    82                                 <PropertyName>ID</PropertyName> 
    83                             </TableColumnItem> 
    84                             <TableColumnItem> 
    85                                 <PropertyName>Name</PropertyName> 
    86                             </TableColumnItem> 
    87                             <TableColumnItem> 
    88                                 <PropertyName>Count</PropertyName> 
    89                             </TableColumnItem> 
    90                         </TableColumnItems> 
    91                     </TableRowEntry> 
    92                 </TableRowEntries> 
    93             </TableControl> 
    94         </View> 
    95          
    96         <View> 
    97             <Name>Dotnet.PowerShell.PS2ch.PS2chResponse</Name> 
    98             <ViewSelectedBy> 
    99                 <TypeName>Dotnet.PowerShell.PS2ch.PS2chResponse</TypeName> 
    100             </ViewSelectedBy> 
     78                                <TableRowEntries> 
     79                                        <TableRowEntry> 
     80                                                <TableColumnItems> 
     81                                                        <TableColumnItem> 
     82                                                                <PropertyName>ID</PropertyName> 
     83                                                        </TableColumnItem> 
     84                                                        <TableColumnItem> 
     85                                                                <PropertyName>Name</PropertyName> 
     86                                                        </TableColumnItem> 
     87                                                        <TableColumnItem> 
     88                                                                <PropertyName>Count</PropertyName> 
     89                                                        </TableColumnItem> 
     90                                                </TableColumnItems> 
     91                                        </TableRowEntry> 
     92                                </TableRowEntries> 
     93                        </TableControl> 
     94                </View> 
     95                 
     96                <View> 
     97                        <Name>Dotnet.PowerShell.PS2ch.PS2chResponse</Name> 
     98                        <ViewSelectedBy> 
     99                                <TypeName>Dotnet.PowerShell.PS2ch.PS2chResponse</TypeName> 
     100                        </ViewSelectedBy> 
    101101 
    102             <ListControl> 
    103                 <ListEntries> 
    104                     <ListEntry> 
    105                         <ListItems> 
    106                             <ListItem> 
    107                                 <Label>レス番号</Label> 
    108                                 <PropertyName>Index</PropertyName> 
    109                             </ListItem> 
    110                             <ListItem> 
    111                                 <Label>タイトル</Label> 
    112                                 <PropertyName>Title</PropertyName> 
    113                             </ListItem> 
    114                             <ListItem> 
    115                                 <Label>日付</Label> 
    116                                 <PropertyName>Date</PropertyName> 
    117                             </ListItem> 
    118                             <ListItem> 
    119                                 <Label>本文</Label> 
    120                                 <PropertyName>Body</PropertyName> 
    121                             </ListItem> 
    122                         </ListItems> 
    123                     </ListEntry> 
    124                 </ListEntries> 
    125             </ListControl> 
    126         </View> 
     102                        <ListControl> 
     103                                <ListEntries> 
     104                                        <ListEntry> 
     105                                                <ListItems> 
     106                                                        <ListItem> 
     107                                                                <Label>レス番号</Label> 
     108                                                                <PropertyName>Index</PropertyName> 
     109                                                        </ListItem> 
     110                                                        <ListItem> 
     111                                                                <Label>タイトル</Label> 
     112                                                                <PropertyName>Title</PropertyName> 
     113                                                        </ListItem> 
     114                                                        <ListItem> 
     115                                                                <Label>日付</Label> 
     116                                                                <PropertyName>Date</PropertyName> 
     117                                                        </ListItem> 
     118                                                        <ListItem> 
     119                                                                <Label>本文</Label> 
     120                                                                <PropertyName>Body</PropertyName> 
     121                                                        </ListItem> 
     122                                                </ListItems> 
     123                                        </ListEntry> 
     124                                </ListEntries> 
     125                        </ListControl> 
     126                </View> 
    127127        </ViewDefinitions> 
    128128         
  • lang/powershell/PSCustomProviders/trunk/src/Dotnet.PowerShell.PS2ch/PS2ch/Configuration/PS2chSnapIn.cs

    r7503 r7512  
    6363                /// </summary> 
    6464                public override string Name { 
    65                         get { return "Dotnet.PowerShell.PS2ch"; } 
     65                        get { return "PS2ch"; } 
    6666                } 
    6767 
  • lang/powershell/PSCustomProviders/trunk/src/Dotnet.PowerShell.PS2ch/PS2ch/PS2chBoard.cs

    r7503 r7512  
    2626using System.Diagnostics; 
    2727 
     28using Dotnet.Commons; 
     29 
    2830#endregion 
    2931 
     
    3739        [Serializable] 
    3840        [DebuggerStepThrough] 
    39         public class PS2chBoard { 
     41        public sealed class PS2chBoard { 
    4042 
    4143                #region fields 
     
    99101                /// <param name="directory">ディレクトリ名</param> 
    100102                /// <param name="domain">ドメイン</param> 
     103                /// <exception cref="ArgumentException">引数が不正な時</exception> 
     104                /// <exception cref="ArgumentNullException">引数がnullの時</exception> 
    101105                public PS2chBoard(string name, string category, string directory, string domain) { 
     106                        #region ArgumentValidation 
     107                        ArgumentValidation.CheckForNullOrEmpty(name, "name"); 
     108                        ArgumentValidation.CheckForNullOrEmpty(category, "category"); 
     109                        ArgumentValidation.CheckForNullOrEmpty(directory, "directory"); 
     110                        ArgumentValidation.CheckForNullOrEmpty(domain, "domain"); 
     111                        #endregion 
     112 
    102113                        this.name = name; 
    103114                        this.category = category; 
  • lang/powershell/PSCustomProviders/trunk/src/Dotnet.PowerShell.PS2ch/PS2ch/PS2chProvider.cs

    r7503 r7512  
    4343        /// PowerShell上で2chの閲覧を可能にするプロバイダクラス 
    4444        /// </summary> 
    45         [CmdletProvider("Dotnet.PowerShell.PS2ch", ProviderCapabilities.ShouldProcess)] 
    46         public class PS2chProvider : NavigationCmdletProvider { 
     45        [CmdletProvider("2ch", ProviderCapabilities.ShouldProcess)] 
     46        public sealed class PS2chProvider : NavigationCmdletProvider { 
     47 
     48                #region const 
     49 
     50                private const string BASE_URL = "http://azlucky.s25.xrea.com/2chboard/2channel.brd"; 
     51                /// <summary> 
     52                /// Httpリクエストに使うユーザーエージェント 
     53                /// </summary> 
     54                private const string USER_AGENT = "Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)"; 
     55 
     56                #endregion 
    4757 
    4858                #region constructors 
     
    6979                /// <returns>板のコレクション</returns> 
    7080                private static IEnumerable<PS2chBoard> Enum2chBoard(string includeName) { 
    71                         TextReader rs = GetHttpResponseStream( 
    72                                 "http://azlucky.s25.xrea.com/2chboard/2channel.brd" 
    73                         ); 
     81                        TextReader rs = GetHttpResponseStream(BASE_URL); 
    7482                        rs.ReadLine();  // 一行目は無視 
    7583 
     
    186194                private static TextReader GetHttpResponseStream(string uri) { 
    187195                        HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create(uri); 
    188                         webReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)"; 
     196                        webReq.UserAgent = USER_AGENT; 
    189197 
    190198                        using(HttpWebResponse webRes = (HttpWebResponse)webReq.GetResponse()) { 
     
    217225 
    218226                /// <summary> 
    219                 ///  
    220                 /// </summary> 
    221                 /// <param name="value"></param> 
    222                 /// <returns></returns> 
     227                /// 指定したHTML文字列をエスケープします。 
     228                /// </summary> 
     229                /// <param name="value">文字列</param> 
     230                /// <returns>文字列</returns> 
    223231                private static string Escape(string value) { 
    224                         // 2ch:\痛いニュース+/1203069245.dat 
    225232                        return HttpUtility.HtmlDecode(value).Replace("<br>", "\r\n"); 
    226233                } 
     
    249256                protected override void GetChildItems(string path, bool recurse) { 
    250257                        if(path == base.PSDriveInfo.Root) { 
    251                                 foreach(PS2chBoard o in Enum2chBoard()) WriteItemObject(o, path, true); 
     258                                foreach(PS2chBoard o in Enum2chBoard()) { 
     259                                        if(base.Stopping) return; 
     260 
     261                                        WriteItemObject(o, path, true); 
     262                                } 
    252263 
    253264                        } else { 
     
    264275 
    265276                                                        if(thread != null) { 
    266                                                                 foreach(PS2chResponse o in Enum2chResponse(thread)) WriteItemObject(o, path, false); 
     277                                                                foreach(PS2chResponse o in Enum2chResponse(thread)) { 
     278                                                                        if(base.Stopping) return; 
     279 
     280                                                                        WriteItemObject(o, path, false); 
     281                                                                } 
    267282                                                        } 
    268283 
    269284                                                } else { 
    270                                                         foreach(PS2chThread o in Enum2chThread(board)) WriteItemObject(o, path, true); 
     285                                                        foreach(PS2chThread o in Enum2chThread(board)) { 
     286                                                                if(base.Stopping) return; 
     287 
     288                                                                WriteItemObject(o, path, true); 
     289                                                        } 
    271290                                                } 
    272291                                        } 
  • lang/powershell/PSCustomProviders/trunk/src/Dotnet.PowerShell.PS2ch/PS2ch/PS2chResponse.cs

    r7503 r7512  
    2626using System.Diagnostics; 
    2727 
     28using Dotnet.Commons; 
     29 
    2830#endregion 
    2931 
     
    3739        [Serializable] 
    3840        [DebuggerStepThrough] 
    39         public class PS2chResponse { 
     41        public sealed class PS2chResponse { 
    4042 
    4143                #region fields 
     
    99101                /// <param name="date">日付</param> 
    100102                /// <param name="body">本文</param> 
     103                /// <exception cref="ArgumentException">引数が不正な時</exception> 
     104                /// <exception cref="ArgumentNullException">引数がnullの時</exception> 
    101105                public PS2chResponse(int index, string title, string date, string body) { 
     106                        #region ArgumentValidation 
     107                        ArgumentValidation.CheckForGreaterEqualZero(index, "index"); 
     108                        ArgumentValidation.CheckForNullOrEmpty(title, "title"); 
     109                        ArgumentValidation.CheckForNullOrEmpty(date, "date"); 
     110                        ArgumentValidation.CheckForNullOrEmpty(body, "body"); 
     111                        #endregion 
     112 
    102113                        this.index = index; 
    103114                        this.title = title; 
  • lang/powershell/PSCustomProviders/trunk/src/Dotnet.PowerShell.PS2ch/PS2ch/PS2chThread.cs

    r7503 r7512  
    2626using System.Diagnostics; 
    2727 
     28using Dotnet.Commons; 
     29 
    2830#endregion 
    2931 
     
    3739        [Serializable] 
    3840        [DebuggerStepThrough] 
    39         public class PS2chThread { 
     41        public sealed class PS2chThread { 
    4042 
    4143                #region fields 
     
    100102                /// <param name="count">レス数</param> 
    101103                /// <param name="board">属する板</param> 
     104                /// <exception cref="ArgumentException">引数が不正な時</exception> 
     105                /// <exception cref="ArgumentNullException">引数がnullの時</exception> 
    102106                public PS2chThread(string id, string name, int count, PS2chBoard board) { 
     107                        #region ArgumentValidation 
     108                        ArgumentValidation.CheckForNullOrEmpty(id, "id"); 
     109                        ArgumentValidation.CheckForNullOrEmpty(name, "name"); 
     110                        ArgumentValidation.CheckForGreaterEqualZero(count, "count"); 
     111                        ArgumentValidation.CheckForNullReference(board, "board"); 
     112                        #endregion 
     113 
    103114                        this.id = id; 
    104115                        this.name = name; 
  • lang/powershell/PSCustomProviders/trunk/src/Dotnet.PowerShell.PSTodo/PSTodo/Configuration/PSTodoSnapIn.cs

    r7503 r7512  
    6363                /// </summary> 
    6464                public override string Name { 
    65                         get { return "Dotnet.PowerShell.PSTodo"; } 
     65                        get { return "PSTodo"; } 
    6666                } 
    6767 
  • lang/powershell/PSCustomProviders/trunk/src/Dotnet.PowerShell.PSWeb/PSWeb/Configuration/PSWebSnapIn.cs

    r7503 r7512  
    6363                /// </summary> 
    6464                public override string Name { 
    65                         get { return "Dotnet.PowerShell.PSWeb"; } 
     65                        get { return "PSWeb"; } 
    6666                } 
    6767