diff --git a/HTMLKit/CSSAttributeSelector.h b/HTMLKit/CSSAttributeSelector.h
index ca343a6..d1ba040 100644
--- a/HTMLKit/CSSAttributeSelector.h
+++ b/HTMLKit/CSSAttributeSelector.h
@@ -9,30 +9,22 @@
#import
#import "CSSSelector.h"
-typedef NS_ENUM(NSUInteger, CSSAttributeSelectorType)
-{
- CSSAttributeSelectorExists,
- CSSAttributeSelectorExactMatch,
- CSSAttributeSelectorIncludes,
- CSSAttributeSelectorBegins,
- CSSAttributeSelectorEnds,
- CSSAttributeSelectorContains,
- CSSAttributeSelectorHyphen,
- CSSAttributeSelectorNot
-};
+NS_ASSUME_NONNULL_BEGIN
@interface CSSAttributeSelector : CSSSelector
@property (nonatomic, assign) CSSAttributeSelectorType type;
-@property (nonatomic, strong, readonly) NSString * _Nonnull name;
-@property (nonatomic, strong, readonly) NSString * _Nonnull value;
+@property (nonatomic, strong, readonly) NSString *name;
+@property (nonatomic, strong, readonly) NSString *value;
-+ (nullable instancetype)classSelector:(nonnull NSString *)className;
-+ (nullable instancetype)idSelector:(nonnull NSString *)elementId;
-+ (nullable instancetype)attributeSelector:(nonnull NSString *)attributeName;
++ (instancetype)classSelector:(NSString *)className;
++ (instancetype)idSelector:(NSString *)elementId;
++ (instancetype)hasAttributeSelector:(NSString *)attributeName;
-- (nullable instancetype)initWithType:(CSSAttributeSelectorType)type
- attributeName:(nonnull NSString *)name
- attrbiuteValue:(nonnull NSString *)value;
+- (instancetype)initWithType:(CSSAttributeSelectorType)type
+ attributeName:(NSString *)name
+ attrbiuteValue:(NSString *)value;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/HTMLKit/CSSAttributeSelector.m b/HTMLKit/CSSAttributeSelector.m
index 433be22..79b5055 100644
--- a/HTMLKit/CSSAttributeSelector.m
+++ b/HTMLKit/CSSAttributeSelector.m
@@ -30,7 +30,7 @@
return [[self alloc] initWithType:CSSAttributeSelectorExactMatch attributeName:@"id" attrbiuteValue:elementId];
}
-+ (nullable instancetype)attributeSelector:(nonnull NSString *)attributeName
++ (instancetype)hasAttributeSelector:(NSString *)attributeName
{
return [[self alloc] initWithType:CSSAttributeSelectorExists attributeName:attributeName attrbiuteValue:@""];
}
diff --git a/HTMLKit/CSSCombinatorSelector.h b/HTMLKit/CSSCombinatorSelector.h
index 91a0419..b227736 100644
--- a/HTMLKit/CSSCombinatorSelector.h
+++ b/HTMLKit/CSSCombinatorSelector.h
@@ -8,11 +8,15 @@
#import "CSSSelector.h"
+NS_ASSUME_NONNULL_BEGIN
+
@interface CSSCombinatorSelector : CSSSelector
-+ (nullable instancetype)childOfElementCombinator:(nonnull CSSSelector *)selector;
-+ (nullable instancetype)descendantOfElementCombinator:(nonnull CSSSelector *)selector;
-+ (nullable instancetype)adjacentSiblingCombinator:(nonnull CSSSelector *)selector;
-+ (nullable instancetype)generalSiblingCombinator:(nonnull CSSSelector *)selector;
++ (instancetype)childOfElementCombinator:(CSSSelector *)selector;
++ (instancetype)descendantOfElementCombinator:(CSSSelector *)selector;
++ (instancetype)adjacentSiblingCombinator:(CSSSelector *)selector;
++ (instancetype)generalSiblingCombinator:(CSSSelector *)selector;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/HTMLKit/CSSCombinatorSelector.m b/HTMLKit/CSSCombinatorSelector.m
index fb3aa21..d5263cc 100644
--- a/HTMLKit/CSSCombinatorSelector.m
+++ b/HTMLKit/CSSCombinatorSelector.m
@@ -35,22 +35,22 @@
@implementation CSSCombinatorSelector
@synthesize selector = _selector;
-+ (nullable instancetype)childOfElementCombinator:(nonnull CSSSelector *)selector
++ (instancetype)childOfElementCombinator:(CSSSelector *)selector
{
return [[CSSChildOfElementCombinatorSelector alloc] initWithSelector:selector];
}
-+ (nullable instancetype)descendantOfElementCombinator:(nonnull CSSSelector *)selector
++ (instancetype)descendantOfElementCombinator:(CSSSelector *)selector
{
return [[CSSDecendantOfElementCombinatorSelector alloc] initWithSelector:selector];
}
-+ (nullable instancetype)adjacentSiblingCombinator:(nonnull CSSSelector *)selector
++ (instancetype)adjacentSiblingCombinator:(CSSSelector *)selector
{
return [[CSSAdjacentSiblingCombinatorSelector alloc] initWithSelector:selector];
}
-+ (nullable instancetype)generalSiblingCombinator:(nonnull CSSSelector *)selector
++ (instancetype)generalSiblingCombinator:(CSSSelector *)selector
{
return [[CSSGeneralSiblingCombinatorSelector alloc] initWithSelector:selector];
}
@@ -78,7 +78,7 @@
- (NSString *)debugDescription
{
- return @" > ";
+ return @">";
}
@end
@@ -123,7 +123,7 @@
- (NSString *)debugDescription
{
- return @" + ";
+ return @"+";
}
@end
@@ -148,7 +148,7 @@
- (NSString *)debugDescription
{
- return @" ~ ";
+ return @"~";
}
@end
diff --git a/HTMLKit/CSSCompoundSelector.h b/HTMLKit/CSSCompoundSelector.h
index 5e76ff8..b6eab0e 100644
--- a/HTMLKit/CSSCompoundSelector.h
+++ b/HTMLKit/CSSCompoundSelector.h
@@ -8,9 +8,13 @@
#import "CSSSelector.h"
+NS_ASSUME_NONNULL_BEGIN
+
@interface CSSCompoundSelector : CSSSelector
-+ (nullable instancetype)andSelector:(nonnull NSArray *)selectors;
-+ (nullable instancetype)orSelector:(nonnull NSArray *)selectors;
++ (instancetype)andSelector:(NSArray *)selectors;
++ (instancetype)orSelector:(NSArray *)selectors;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/HTMLKit/CSSPseudoClassSelector.h b/HTMLKit/CSSPseudoClassSelector.h
index 8d977e7..7f15cd9 100644
--- a/HTMLKit/CSSPseudoClassSelector.h
+++ b/HTMLKit/CSSPseudoClassSelector.h
@@ -7,13 +7,15 @@
//
#import "CSSSelector.h"
-#import "CSSSimpleSelector.h"
-@interface CSSPseudoClassSelector : NSObject
+NS_ASSUME_NONNULL_BEGIN
-@property (nonatomic, strong, readonly) NSString * _Nonnull className;
+@interface CSSPseudoClassSelector : CSSSelector
-- (nullable instancetype)initWithClassName:(nonnull NSString *)className
- andBlock:(nonnull CSSSelectorAcceptElementBlock)block;
+@property (nonatomic, strong, readonly) NSString *className;
+
+- (instancetype)initWithClassName:(NSString *)className selector:(CSSSelector *)selector;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/HTMLKit/CSSPseudoClassSelector.m b/HTMLKit/CSSPseudoClassSelector.m
index 8be8258..3471670 100644
--- a/HTMLKit/CSSPseudoClassSelector.m
+++ b/HTMLKit/CSSPseudoClassSelector.m
@@ -7,35 +7,30 @@
//
#import "CSSPseudoClassSelector.h"
-#import "HTMLElement.h"
-#import "NSString+HTMLKit.h"
-
-@interface CSSPseudoClassSelector ()
-{
- CSSSelectorAcceptElementBlock _block;
-}
-@end
@interface CSSPseudoClassSelector ()
{
NSString *_className;
+ CSSSelector *_selector;
}
@end
@implementation CSSPseudoClassSelector
+@synthesize className = _className;
-- (instancetype)initWithClassName:(NSString *)className andBlock:(CSSSelectorAcceptElementBlock)block
+- (instancetype)initWithClassName:(NSString *)className selector:(CSSSelector *)selector
{
self = [super init];
if (self) {
- _block = block;
+ _className = [className copy];
+ _selector = selector;
}
return self;
}
-(BOOL)acceptElement:(HTMLElement *)element
{
- return _block ? _block(element) : NO;
+ return [_selector acceptElement:element];
}
- (NSString *)debugDescription
diff --git a/HTMLKit/CSSPseudoFunctionSelector.h b/HTMLKit/CSSPseudoFunctionSelector.h
index 5580201..d5d69f3 100644
--- a/HTMLKit/CSSPseudoFunctionSelector.h
+++ b/HTMLKit/CSSPseudoFunctionSelector.h
@@ -8,9 +8,13 @@
#import "CSSSelector.h"
+NS_ASSUME_NONNULL_BEGIN
+
@interface CSSPseudoFunctionSelector : CSSSelector
-+ (nullable instancetype)notSelector:(nonnull CSSSelector *)selector;
-+ (nullable instancetype)hasSelector:(nonnull CSSSelector *)selector;
++ (instancetype)notSelector:(CSSSelector *)selector;
++ (instancetype)hasSelector:(CSSSelector *)selector;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/HTMLKit/CSSPseudoFunctionSelector.m b/HTMLKit/CSSPseudoFunctionSelector.m
index e16f71b..9c22407 100644
--- a/HTMLKit/CSSPseudoFunctionSelector.m
+++ b/HTMLKit/CSSPseudoFunctionSelector.m
@@ -29,12 +29,12 @@
@implementation CSSPseudoFunctionSelector
@synthesize selector = _selector;
-+ (nullable instancetype)notSelector:(nonnull CSSSelector *)selector
++ (instancetype)notSelector:(CSSSelector *)selector
{
return [[CSSNotSelector alloc] initWithSelector:selector];
}
-+ (nullable instancetype)hasSelector:(nonnull CSSSelector *)selector
++ (instancetype)hasSelector:(CSSSelector *)selector
{
return [[CSSHasSelector alloc] initWithSelector:selector];
}
diff --git a/HTMLKit/CSSTypeSelector.h b/HTMLKit/CSSTypeSelector.h
index c36ebff..6bd1f93 100644
--- a/HTMLKit/CSSTypeSelector.h
+++ b/HTMLKit/CSSTypeSelector.h
@@ -9,12 +9,16 @@
#import
#import "CSSSelector.h"
+NS_ASSUME_NONNULL_BEGIN
+
@interface CSSTypeSelector : CSSSelector
-@property (nonatomic, strong, readonly) NSString * _Nonnull type;
+@property (nonatomic, strong, readonly) NSString *type;
-+ (nullable instancetype)universalSelector;
++ (instancetype)universalSelector;
-- (nullable instancetype)initWithType:(nonnull NSString *)type;
+- (instancetype)initWithType:(NSString *)type;
@end
+
+NS_ASSUME_NONNULL_END