/// <summary> /// Read a multi-line value. /// </summary> /// <param name="parser"></param> /// <returns></returns> public static string ReadValueMultiLine(IIniParser parser) { StringBuilder buffer = new StringBuilder(); string currentChar = string.Empty; // Read until ":" colon. while (currentChar != IniParserConstants.DoubleQuote) { // Escape char if (currentChar == IniParserConstants.Escape) { currentChar = parser.Read().ToString(); buffer.Append(currentChar); } else { buffer.Append(currentChar); } currentChar = parser.Read().ToString(); } // Error out if current char is not ":". if (parser.CurrentChar != IniParserConstants.DoubleQuote) { parser.Errors.Add("Expected double quote '\"' to end multi-line value at : " + parser.CurrentCharIndex); } return(buffer.ToString()); }
public ReadToOneBufferBenchmark() { if (Directory.Exists(TestDirectory)) { Directory.Delete(TestDirectory, true); } Directory.CreateDirectory(TestDirectory); var fixture = new Fixture(); var customization = new SupportMutableValueTypesCustomization(); var newParser = $"{TestDirectory}newParser"; var oldParser = $"{TestDirectory}oldParser"; customization.Customize(fixture); _iniParser = new IniWrapper.ParserWrapper.IniParser(newParser, 1024); _oldIniParser = new OldParserWrapper.IniParser(oldParser, 1024); var configuration = fixture.Create <OldParserWrapper.Configuration>(); var iniWrapper = new IniWrapperFactory().CreateWithDefaultIniParser(x => { x.IniFilePath = newParser; }); var oldIni = new IniWrapperFactory().CreateWithDefaultIniParser(x => { x.IniFilePath = oldParser; }); iniWrapper.SaveConfiguration(configuration); oldIni.SaveConfiguration(configuration); }
public static IIniWrapper CreateWithFileSystem(IIniParser iniParser) { var fileSystem = Substitute.For <IFileSystem>(); fileSystem.File.Exists(Arg.Any <string>()).Returns(true); return(Create(iniParser, fileSystem)); }
/// <summary> /// Read the IniGroup name. /// [group1] /// </summary> /// <param name="parser"></param> /// <returns></returns> public static string ReadKey(IIniParser parser) { StringBuilder buffer = new StringBuilder(); int iterationCount = 0; // Read until ":" colon. while (parser.CurrentChar != IniParserConstants.Colon.ToString() && iterationCount <= parser.Settings.MaxLengthOfKey) { buffer.Append(parser.CurrentChar); iterationCount++; // Advance the parser to next char. parser.Read(); } // Error out if current char is not ":". if (parser.CurrentChar != IniParserConstants.Colon.ToString()) { parser.Errors.Add("Expected colon ':' at : " + parser.CurrentCharIndex); } else { // Advance the parser to after the ":" colon. parser.Read(); } return(buffer.ToString()); }
public ReadBenchmark() { Directory.CreateDirectory(TestDirectory); _rawIniParser = new IniParser($"{TestDirectory}rawBenchmark.ini", BufferSize); _iniWrapper = new IniWrapperFactory().CreateWithDefaultIniParser(x => { x.IniFilePath = $"{TestDirectory}benchmark.ini"; x.DefaultIniWrapperBufferSize = BufferSize; }); _configurationBenchmark = new ConfigurationBenchmark() { Test = 10, Age = 20, Description = "TestDescription", ListInt = new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }, InnerConfiguration = new InnerConfiguration() { Description = "Description1234", Age = 100 } }; _iniWrapper.SaveConfiguration(_configurationBenchmark); }
internal IIniWrapper CreateWithFileSystem(IniSettings iniSettings, IIniParser iniParser, IFileSystem fileSystem) { var converterFactory = new IniConverterFactory(new TypeManager(), iniSettings); var savingManager = new SavingManager(new IniValueManager(new IniValueAttributeManager()), iniParser, converterFactory); var readingManager = new ReadingManager(new IniValueManager(new IniValueAttributeManager()), converterFactory, iniParser); var defaultConfigurationCreationStrategy = new ConfigurationLoadingChecker(fileSystem, iniSettings); var iniWrapperInternal = new IniWrapperInternal(savingManager, readingManager); var iniWrapperForImmutableTypeFactory = new IniWrapperForImmutableTypeFactory(iniWrapperInternal, readingManager); var iniInternalFactory = new IniWrapperInternalFactory(new IniConstructorChecker(), iniWrapperInternal, iniWrapperForImmutableTypeFactory); var iniWrapper = new IniWrapper(defaultConfigurationCreationStrategy, iniInternalFactory, new MemberInfoFactory()); var iniWrapperWithCustomMemberInfoForImmutableTypeFactory = new IniWrapperWithCustomMemberInfoForImmutableTypeFactory(iniWrapperInternal, readingManager); var iniWrapperWithCustomMemberInfoManager = new IniWrapperWithCustomMemberInfoManager(iniWrapperInternal, new IniConstructorChecker(), iniWrapperWithCustomMemberInfoForImmutableTypeFactory); converterFactory.IniWrapper = iniWrapper; converterFactory.IniWrapperWithCustomMemberInfo = iniWrapperWithCustomMemberInfoManager; return(iniWrapper); }
public IniFileReader( ITextFileReader fileReader, IIniParser parser) { this.fileReader = fileReader; this.parser = parser; }
public ReadingManager(IIniValueManager iniValueManager, IIniConverterFactory iniConverterFactory, IIniParser iniParser) { _iniValueManager = iniValueManager; _iniConverterFactory = iniConverterFactory; _iniParser = iniParser; }
public IIniWrapper Create(Action <IniSettings> iniSettings, IIniParser iniParser) { var settings = new IniSettings(); iniSettings(settings); return(Create(settings, iniParser)); }
/// <summary> /// Read the IniGroup name. /// [group1] /// </summary> /// <param name="parser"></param> /// <returns></returns> public static string ReadComment(IIniParser parser) { StringBuilder buffer = new StringBuilder(); // Exclude the "[" bracket from consuming the token("group name"). string comment = parser.ReadTokenToEndOfLine(); return(comment); }
public IniContext(IMemberInfoWrapper memberInfoWrapper, TypeDetailsInformation typeDetailsInformation, IniValue iniValue, IIniParser iniParser, IIniConverter defaultConverter) { MemberInfoWrapper = memberInfoWrapper; TypeDetailsInformation = typeDetailsInformation; IniValue = iniValue; IniParser = iniParser; DefaultConverter = defaultConverter; }
/// <summary> /// Read the IniGroup name. /// [group1] /// </summary> /// <param name="parser"></param> /// <returns></returns> public static string ReadValue(IIniParser parser) { StringBuilder buffer = new StringBuilder(); // Get rid of starting whitespace. parser.ConsumeWhiteSpace(); if (parser.CurrentChar != IniParserConstants.DoubleQuote) { return(parser.ReadTokenToEndOfLine()); } return(ReadValueMultiLine(parser)); }
/// <summary> /// Read the IniGroup name. /// [group1] /// </summary> /// <param name="parser"></param> /// <returns></returns> public static string ReadGroup(IIniParser parser) { StringBuilder buffer = new StringBuilder(); // Exclude the "[" bracket from consuming the token("group name"). if (parser.CurrentChar == IniParserConstants.BracketLeft) { parser.Read(); } int iterationCount = 0; // Read until "]" right bracket. while (parser.CurrentChar != IniParserConstants.BracketRight && iterationCount <= parser.Settings.MaxLengthOfGroup) { buffer.Append(parser.CurrentChar); iterationCount++; // Advance the parser to next char. parser.Read(); } // Error out if current char is not "]". if (parser.CurrentChar != IniParserConstants.BracketRight) { parser.Errors.Add("Expected closing bracket ']' at : " + parser.CurrentCharIndex); } else { // Advance the parser to after the "]" closing bracket. parser.Read(); } return(buffer.ToString()); }
public static IIniWrapper Create(IIniParser iniParser, IFileSystem fileSystem) { return(Create(new IniSettings(), iniParser, fileSystem)); }
public IIniWrapper Create(IIniParser iniParser) { return(Create(new IniSettings(), iniParser)); }
public SavingManager(IIniValueManager iniValueManager, IIniParser iniParser, IIniConverterFactory iniConverterFactory) { _iniValueManager = iniValueManager; _iniParser = iniParser; _iniConverterFactory = iniConverterFactory; }
public FileIniParser(IIniParser iniParser) => _parser = iniParser;
public IIniWrapper Create(IniSettings iniSettings, IIniParser iniParser) { CheckSettings(iniSettings); return(CreateWithFileSystem(iniSettings, iniParser, new FileSystem())); }
public void SetUp() { _iniParser = Substitute.For <IIniParser>(); _iniWrapper = MockWrapperFactory.CreateWithFileSystem(_iniParser); }
public static IIniWrapper Create(IniSettings iniSettings, IIniParser iniParser, IFileSystem fileSystem) { return(new IniWrapperFactory().CreateWithFileSystem(iniSettings, iniParser, fileSystem)); }