mirror of
https://github.com/SoPat712/YTLitePlus.git
synced 2025-08-25 11:55:28 -04:00
added files via upload
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// FLEXRuntimeKeyPath.m
|
||||
// FLEX
|
||||
//
|
||||
// Created by Tanner on 3/22/17.
|
||||
// Copyright © 2017 Tanner Bennett. All rights reserved.
|
||||
//
|
||||
|
||||
#import "FLEXRuntimeKeyPath.h"
|
||||
#import "FLEXRuntimeClient.h"
|
||||
|
||||
@interface FLEXRuntimeKeyPath () {
|
||||
NSString *flex_description;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation FLEXRuntimeKeyPath
|
||||
|
||||
+ (instancetype)empty {
|
||||
static FLEXRuntimeKeyPath *empty = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
FLEXSearchToken *any = FLEXSearchToken.any;
|
||||
|
||||
empty = [self new];
|
||||
empty->_bundleKey = any;
|
||||
empty->flex_description = @"";
|
||||
});
|
||||
|
||||
return empty;
|
||||
}
|
||||
|
||||
+ (instancetype)bundle:(FLEXSearchToken *)bundle
|
||||
class:(FLEXSearchToken *)cls
|
||||
method:(FLEXSearchToken *)method
|
||||
isInstance:(NSNumber *)instance
|
||||
string:(NSString *)keyPathString {
|
||||
FLEXRuntimeKeyPath *keyPath = [self new];
|
||||
keyPath->_bundleKey = bundle;
|
||||
keyPath->_classKey = cls;
|
||||
keyPath->_methodKey = method;
|
||||
|
||||
keyPath->_instanceMethods = instance;
|
||||
|
||||
// Remove irrelevant trailing '*' for equality purposes
|
||||
if ([keyPathString hasSuffix:@"*"]) {
|
||||
keyPathString = [keyPathString substringToIndex:keyPathString.length];
|
||||
}
|
||||
keyPath->flex_description = keyPathString;
|
||||
|
||||
if (bundle.isAny && cls.isAny && method.isAny) {
|
||||
[FLEXRuntimeClient initializeWebKitLegacy];
|
||||
}
|
||||
|
||||
return keyPath;
|
||||
}
|
||||
|
||||
- (NSString *)description {
|
||||
return flex_description;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash {
|
||||
return flex_description.hash;
|
||||
}
|
||||
|
||||
- (BOOL)isEqual:(id)object {
|
||||
if ([object isKindOfClass:[FLEXRuntimeKeyPath class]]) {
|
||||
FLEXRuntimeKeyPath *kp = object;
|
||||
return [flex_description isEqualToString:kp->flex_description];
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
@end
|
Reference in New Issue
Block a user