From 991e868d143f2ec15ed0a71d2b59b039a4da592d Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 29 Nov 2015 19:53:39 +0100 Subject: [PATCH] Add selector initializer for creating instances with a given selector string --- HTMLKit/CSSSelector.h | 3 ++- HTMLKit/CSSSelector.m | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/HTMLKit/CSSSelector.h b/HTMLKit/CSSSelector.h index d13fb58..a4f8a58 100644 --- a/HTMLKit/CSSSelector.h +++ b/HTMLKit/CSSSelector.h @@ -44,6 +44,7 @@ extern NSString * _Nonnull NSStringFromNthExpression(CSSNthExpression expression @interface CSSSelector : NSObject -- (BOOL)acceptElement:(nonnull HTMLElement *)element; ++ (nullable instancetype)selectorWithString:(NSString *)stirng; +- (BOOL)acceptElement:(HTMLElement *)element; @end diff --git a/HTMLKit/CSSSelector.m b/HTMLKit/CSSSelector.m index f3a8e52..14097a7 100644 --- a/HTMLKit/CSSSelector.m +++ b/HTMLKit/CSSSelector.m @@ -8,9 +8,20 @@ #import #import "CSSSelector.h" +#import "CSSSelectorParser.h" @implementation CSSSelector ++ (instancetype)selectorWithString:(NSString *)string +{ + NSError *error = nil; + CSSSelector *instance = [CSSSelectorParser parseSelector:string error:&error]; + if (error) { + return nil; + } + return instance; +} + - (BOOL)acceptElement:(HTMLElement *)element { [self doesNotRecognizeSelector:_cmd];