Skip to content

Commit

Permalink
Release v3.1.2
Browse files Browse the repository at this point in the history
Squashed commit of the following:

commit 9332f66
Merge: e327d13 9664ec0
Author: skwas <skwas@skwas.net>
Date:   Fri Oct 25 19:41:55 2019 +0200

    Merge branch 'master' into develop

commit e327d13
Author: skwas <skwas@skwas.net>
Date:   Fri Oct 25 19:34:45 2019 +0200

    Build with VS2019 image

commit ded1ddc
Author: skwas <skwas@skwas.net>
Date:   Fri Oct 25 19:29:58 2019 +0200

    Insert final newline

commit 99714e3
Author: skwas <skwas@skwas.net>
Date:   Fri Oct 25 19:14:50 2019 +0200

    Move localizable text to RESX

commit 4daec94
Author: skwas <skwas@skwas.net>
Date:   Fri Oct 25 18:57:10 2019 +0200

    Reorder target frameworks and rerun custom tool. This workaround ensures GetTypeInfo() is emitted.

    dotnet/project-system#1519

commit 5ee8134
Author: skwas <skwas@skwas.net>
Date:   Fri Oct 25 18:52:23 2019 +0200

    Move localizable text to RESX

commit 050ece6
Author: skwas <skwas@skwas.net>
Date:   Fri Oct 25 18:44:09 2019 +0200

    Update Changelog

commit 6cd686b
Author: skwas <skwas@skwas.net>
Date:   Wed Oct 16 05:58:49 2019 +0200

    Use .snupkg and SourceLink

commit 2bae078
Author: skwas <skwas@skwas.net>
Date:   Wed Oct 16 05:57:30 2019 +0200

    Add settings for props and targets files

commit 9664ec0
Merge: e6bee51 aa01d3f
Author: skwasjer <skwas@skwas.net>
Date:   Wed Oct 16 03:30:58 2019 +0200

    Merge pull request #10 from skwasjer/develop

    Add test coverage

commit aa01d3f
Author: skwas <skwas@skwas.net>
Date:   Wed Oct 16 01:36:20 2019 +0200

    Fix upload script not finding test reports

commit 204017d
Author: skwas <skwas@skwas.net>
Date:   Wed Oct 16 01:18:16 2019 +0200

    Fix: upload test report per target framework

    microsoft/vstest#1603

commit 1b25c1a
Author: skwas <skwas@skwas.net>
Date:   Sat Aug 10 00:56:30 2019 +0200

    Fix whitespace

commit 3c2bc0d
Author: skwas <skwas@skwas.net>
Date:   Sat Aug 10 00:56:13 2019 +0200

    Add test case that asserts correct verification of case (in)sensitive IBAN's

commit 9f71aca
Author: skwas <skwas@skwas.net>
Date:   Wed Oct 16 00:46:34 2019 +0200

    fix: internal IBAN value can never be null. Add some extra coverage for equality checks.

commit 884119e
Author: skwas <skwas@skwas.net>
Date:   Wed Oct 16 00:20:28 2019 +0200

    Add coverage

commit 51e99ba
Author: skwas <skwas@skwas.net>
Date:   Wed Oct 16 00:10:30 2019 +0200

    Partial revert, the custom upload of test reports was needed because NUnit reports are not supported by AppVeyor.

    This partially reverts commit 099472f.

commit 3d6ab4b
Author: skwas <skwas@skwas.net>
Date:   Wed Oct 16 00:03:29 2019 +0200

    Add coverage for extensions

commit 3243a77
Author: skwas <skwas@skwas.net>
Date:   Tue Oct 15 23:32:00 2019 +0200

    Moved extension specific to get country code to validator since it's poluting string class with this extension method.

commit e6bee51
Merge: 046132a a3bf4fb
Author: skwasjer <skwas@skwas.net>
Date:   Tue Oct 15 23:21:44 2019 +0200

    Merge pull request #9 from skwasjer/develop

    CI/Coverage improvements

commit a3bf4fb
Merge: 92a4e88 046132a
Author: skwasjer <skwas@skwas.net>
Date:   Tue Oct 15 23:18:16 2019 +0200

    Merge branch 'master' into develop

commit 92a4e88
Author: skwas <skwas@skwas.net>
Date:   Tue Oct 15 23:00:10 2019 +0200

    fix: fail build when test fails during coverage
    fix: exclude generated/excluded code

commit 099472f
Author: skwas <skwas@skwas.net>
Date:   Tue Oct 15 22:49:17 2019 +0200

    Move DebugType=full to cmdline arg, so we can compile Release with portable PDB (to support SourceLink)

commit 8189ae1
Author: skwas <skwas@skwas.net>
Date:   Tue Oct 15 20:48:24 2019 +0200

    Bump test dependencies

commit 046132a
Merge: 6e07f35 9ba8014
Author: skwasjer <skwas@skwas.net>
Date:   Thu Jul 25 03:38:07 2019 +0200

    Merge pull request #5 from skwasjer/develop

    v3.1.1 - Maintenance release

commit 9ba8014
Author: skwas <skwas@skwas.net>
Date:   Thu Jul 25 01:21:15 2019 +0200

    Fix unit test reports not found
    microsoft/vstest#1951

commit 20ed577
Author: skwas <skwas@skwas.net>
Date:   Thu Jul 25 01:13:15 2019 +0200

    fix: use correct build hook

commit b9914c4
Author: skwas <skwas@skwas.net>
Date:   Thu Jul 25 01:04:16 2019 +0200

    fix: test-results.xml files not found due to invalid arg

commit dc89c1f
Author: skwas <skwas@skwas.net>
Date:   Thu Jul 25 00:53:45 2019 +0200

    fix build failure

commit 323af41
Author: skwas <skwas@skwas.net>
Date:   Thu Jul 25 00:49:20 2019 +0200

    fix: custom codecov script does not generate and upload unit test results to AppVeyor

commit 5dec462
Author: skwas <skwas@skwas.net>
Date:   Wed Jul 24 23:57:40 2019 +0200

    Update Changelog.md

commit 8593bae
Author: skwas <skwas@skwas.net>
Date:   Wed Jul 24 23:51:36 2019 +0200

    Revert breaking change, expose dictionary via internal interface. Breaking change will be postponed until v4.

commit 5364406
Author: skwas <skwas@skwas.net>
Date:   Wed Jul 24 23:34:07 2019 +0200

    Ensure supported countries cannot be modified directly.

commit b5b5147
Author: skwas <skwas@skwas.net>
Date:   Wed Jul 24 23:23:54 2019 +0200

    Made internal (so it won't get used yet) until decided what to do with it.

commit e6ea2b9
Author: skwas <skwas@skwas.net>
Date:   Wed Jul 24 23:15:15 2019 +0200

    Enable cache for choco packages, and add full debug symbols for coverage

commit f33dd15
Author: skwas <skwas@skwas.net>
Date:   Wed Jul 24 23:05:04 2019 +0200

    Enable codecov

commit f619f6e
Merge: 970850e 6e07f35
Author: skwas <skwas@skwas.net>
Date:   Wed Jul 24 22:47:54 2019 +0200

    Merge branch 'master' into develop

commit 970850e
Author: skwas <skwas@skwas.net>
Date:   Thu May 23 22:36:02 2019 +0200

    Field is not supported.

commit ddc095e
Author: skwas <skwas@skwas.net>
Date:   Thu May 23 20:33:54 2019 +0200

    Move getting country code from string to internal extension.

commit 4d52172
Author: skwas <skwas@skwas.net>
Date:   Thu May 23 20:17:21 2019 +0200

    Update Changelog.md

commit 397a50f
Author: skwas <skwas@skwas.net>
Date:   Thu May 23 20:16:12 2019 +0200

    (breaking) Expose supported countries through new interface.
    (breaking) Change type of SupportedCountries to dictionary

commit 7f532af
Author: skwas <skwas@skwas.net>
Date:   Sun May 12 03:40:47 2019 +0200

    Allow access to some properties via debugger

commit 4f8e24b
Author: skwas <skwas@skwas.net>
Date:   Sat May 11 02:33:34 2019 +0200

    [skip ci] Build/test shields only report for master branch

commit ae03d21
Author: skwas <skwas@skwas.net>
Date:   Sat May 11 02:24:55 2019 +0200

    Always use latest version of IbanNet for example app

# Conflicts - resolved using changes to be integrated:
#	Changelog.md
#	appveyor.yml
#	ci/upload-testresults.ps1
#	codecov.yml
#	src/IbanNet.DataAnnotations/IbanNet.DataAnnotations.csproj
#	src/IbanNet.FluentValidation/IbanNet.FluentValidation.csproj
#	src/IbanNet/IbanNet.csproj
#	src/IbanNet/IbanValidator.cs
#	test/IbanNet.Tests/IbanValidatorTests.cs
  • Loading branch information
skwasjer committed Oct 25, 2019
1 parent db5d2ba commit b86f2a0
Show file tree
Hide file tree
Showing 30 changed files with 811 additions and 115 deletions.
4 changes: 2 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ root = true
[*]
indent_style = space
indent_size = 4
insert_final_newline = false
insert_final_newline = true

[*.{cs,csproj,tt}]
charset = utf-8-bom
end_of_line = crlf
indent_style = tab

[*.csproj]
[*.{csproj,props,targets}]
indent_size = 2
indent_style = space

Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -198,4 +198,5 @@ cordova.js
/plugins
/lib
*.DotSettings
.vs/
.vs/
/coverage.xml
4 changes: 4 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## v3.1.2

- Enabled [SourceLink](https://github.com/dotnet/sourcelink).

## v3.1.1

- Removed ability to apply `IbanAttribute` to fields, since model validation does not occur for fields.
Expand Down
9 changes: 5 additions & 4 deletions IbanNet.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2010
# Visual Studio Version 16
VisualStudioVersion = 16.0.29418.71
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6DDAB3B8-F745-42DD-B3E7-B2EAEEBF79B4}"
ProjectSection(SolutionItems) = preProject
Expand All @@ -16,6 +16,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IbanNet.Tests", "test\IbanN
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A44047DB-7353-446A-A6F5-43D6855572EC}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
.gitattributes = .gitattributes
.gitignore = .gitignore
appveyor.yml = appveyor.yml
Expand All @@ -26,9 +27,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IbanNet.DataAnnotations", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IbanNet.DataAnnotations.Tests", "test\IbanNet.DataAnnotations.Tests\IbanNet.DataAnnotations.Tests.csproj", "{B10ED810-E191-40A0-9F0F-7D168C4AAEDE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IbanNet.FluentValidation", "src\IbanNet.FluentValidation\IbanNet.FluentValidation.csproj", "{E73402F9-F5D9-4EB8-B554-EE2EAD3CF24C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IbanNet.FluentValidation", "src\IbanNet.FluentValidation\IbanNet.FluentValidation.csproj", "{E73402F9-F5D9-4EB8-B554-EE2EAD3CF24C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IbanNet.FluentValidation.Tests", "test\IbanNet.FluentValidation.Tests\IbanNet.FluentValidation.Tests.csproj", "{F6BC952E-39D5-4F5D-9406-7B2A7B66FE55}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IbanNet.FluentValidation.Tests", "test\IbanNet.FluentValidation.Tests\IbanNet.FluentValidation.Tests.csproj", "{F6BC952E-39D5-4F5D-9406-7B2A7B66FE55}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
5 changes: 3 additions & 2 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: 1.0.0.{build}-ci
skip_branch_with_pr: true
image: Visual Studio 2017
image: Visual Studio 2019
configuration: Release
dotnet_csproj:
patch: true
Expand All @@ -26,9 +26,10 @@ build:
project: IbanNet.sln
publish_nuget: true
publish_nuget_symbols: true
use_snupkg_format: true
verbosity: minimal
test_script:
- OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test -c Debug -l:trx;LogFileName=test-results.xml" -output:coverage.xml -register:user -filter:"+[IbanNet*]* -[*Tests]*" -oldStyle
- OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test -c Debug /p:DebugType=full -l:trx;LogFilePrefix=testresults" -output:coverage.xml -register:user -returntargetcode -filter:"+[IbanNet*]* -[*Tests]*" -excludebyattribute:*.ExcludeFromCodeCoverageAttribute;*.GeneratedCodeAttribute;*.DebuggerNonUserCodeAttribute;*.CompilerGeneratedAttribute;*.DebuggerHiddenAttribute -oldStyle
- codecov -f coverage.xml
- ps: '& .\ci\upload-testresults.ps1'
deploy:
Expand Down
2 changes: 1 addition & 1 deletion ci/upload-testresults.ps1
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
$wc = New-Object 'System.Net.WebClient'

$files = Get-ChildItem test-result*.xml -Recurse
$files = Get-ChildItem *.trx -Recurse

$uploadUri = "https://ci.appveyor.com/api/testresults/mstest/$($env:APPVEYOR_JOB_ID)"
Write-Host "Uploading test results to $($uploadUri)"
Expand Down
1 change: 0 additions & 1 deletion codecov.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
codecov:
notify:
require_ci_to_pass: true
threshold: 1%
comment:
behavior: default
layout: header,tree
Expand Down
3 changes: 1 addition & 2 deletions src/IbanNet.DataAnnotations/IbanNet.DataAnnotations.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard1.6;netstandard1.3;net47;net45</TargetFrameworks>
<DebugType>full</DebugType>
<TargetFrameworks>netstandard1.3;netstandard1.6;netstandard2.0;net47;net45</TargetFrameworks>
</PropertyGroup>

<Import Project="..\Package.props" />
Expand Down
2 changes: 1 addition & 1 deletion src/IbanNet.DataAnnotations/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/IbanNet.FluentValidation/FluentIbanValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class FluentIbanValidator : PropertyValidator
/// </summary>
/// <param name="ibanValidator">The IBAN validator to use.</param>
public FluentIbanValidator(IIbanValidator ibanValidator)
: base("'{PropertyName}' is not a valid IBAN.")
: base(Resources.Not_a_valid_IBAN)
{
_ibanValidator = ibanValidator ?? throw new ArgumentNullException(nameof(ibanValidator));
}
Expand Down
22 changes: 20 additions & 2 deletions src/IbanNet.FluentValidation/IbanNet.FluentValidation.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard1.6;netstandard1.2;net47;net45</TargetFrameworks>
<DebugType>full</DebugType>
<TargetFrameworks>netstandard1.2;netstandard1.6;netstandard2.0;net47;net45</TargetFrameworks>
</PropertyGroup>

<Import Project="..\Package.props" />
Expand All @@ -16,9 +15,28 @@
<ItemGroup>
<PackageReference Include="FluentValidation" Version="8.0.0" />
</ItemGroup>

<ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
<Reference Include="System" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\IbanNet\IbanNet.csproj" />
</ItemGroup>

<ItemGroup>
<Compile Update="Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>

<ItemGroup>
<EmbeddedResource Update="Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>

</Project>
73 changes: 73 additions & 0 deletions src/IbanNet.FluentValidation/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

123 changes: 123 additions & 0 deletions src/IbanNet.FluentValidation/Resources.resx
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Not_a_valid_IBAN" xml:space="preserve">
<value>'{PropertyName}' is not a valid IBAN.</value>
</data>
</root>
12 changes: 6 additions & 6 deletions src/IbanNet/Extensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,24 +52,24 @@ private static IEnumerable<IEnumerable<TSource>> PartitionIterator<TSource>(this
}

/// <summary>
/// Splits a given <paramref name="sequence"/> into partitions when encountering any of the <paramref name="markers"/>.
/// Splits a given <paramref name="sequence"/> into partitions when encountering any of the <paramref name="chars"/>.
/// </summary>
/// <param name="sequence">The sequence to partition.</param>
/// <param name="markers">A list of markers to partition on.</param>
/// <param name="chars">A list of markers to partition on.</param>
/// <returns>an enumerable of partitions</returns>
public static IEnumerable<string> PartitionOn(this string sequence, params char[] markers)
public static IEnumerable<string> PartitionOn(this string sequence, params char[] chars)
{
if (sequence == null)
{
throw new ArgumentNullException(nameof(sequence));
}

if (markers == null || markers.Length == 0)
if (chars == null || chars.Length == 0)
{
throw new ArgumentException("At least one marker is required.", nameof(markers));
throw new ArgumentException("At least one character to partition on is required.", nameof(chars));
}

return PartitionOnIterator(sequence, markers);
return PartitionOnIterator(sequence, chars);
}

private static IEnumerable<string> PartitionOnIterator(this string sequence, params char[] markers)
Expand Down
Loading

0 comments on commit b86f2a0

Please sign in to comment.