// // GONMarkupReset.m // GONMarkupParserSample // // Created by Nicolas Goutaland on 25/06/14. // Copyright (c) 2014 Nicolas Goutaland. All rights reserved. // #import "GONMarkupReset.h" #import "GONMarkup+Private.h" @implementation GONMarkupReset #pragma mark - Constructor + (instancetype)resetMarkup { return [self markupForTag:GONMarkupReset_TAG]; } #pragma mark - Style - (void)openingMarkupFound:(NSString *)tag configuration:(NSMutableDictionary *)configurationDictionary context:(NSMutableDictionary *)context attributes:(NSDictionary *)dicAttributes { // Reset configuration [configurationDictionary removeAllObjects]; // Set it back to default if allowed if (![[dicAttributes objectForKey:GONMarkupReset_TAG_all_ATT] boolValue]) [configurationDictionary addEntriesFromDictionary:self.parser.defaultConfiguration]; // Copy current context NSMutableDictionary *contextCopy = [context mutableCopy]; // Reset it [context removeAllObjects]; // Hold saved context [context setObject:contextCopy forKey:GONMarkupReset_SAVED_CONTEXT_KEY]; } - (void)closingMarkupFound:(NSString *)tag configuration:(NSMutableDictionary *)configurationDictionary context:(NSMutableDictionary *)context attributes:(NSDictionary *)dicAttributes { // Copy current context NSMutableDictionary *savedContext = [context objectForKey:GONMarkupReset_SAVED_CONTEXT_KEY]; // Reset context [context removeAllObjects]; // Reset current context to previously saved one [context addEntriesFromDictionary:savedContext]; } @end