Skip to content

Commit

Permalink
Removing shorthand, coercions, lamda syntax, as the project upgrades …
Browse files Browse the repository at this point in the history
…had broken the macro definitions.
  • Loading branch information
stuartervine committed Dec 15, 2015
1 parent 8a8fc95 commit 5a428d8
Show file tree
Hide file tree
Showing 18 changed files with 198 additions and 205 deletions.
38 changes: 28 additions & 10 deletions OCTotallyLazy.xcodeproj/project.pbxproj
Expand Up @@ -41,7 +41,6 @@
AD5D061EE6967F0866FFC640 /* NSArray+OCTotallyLazy.h in Headers */ = {isa = PBXBuildFile; fileRef = AD5D03EC11BA48E5894964B4 /* NSArray+OCTotallyLazy.h */; settings = {ATTRIBUTES = (Public, ); }; };
AD5D062BB00DB2906A259652 /* PredicatesTest.m in Sources */ = {isa = PBXBuildFile; fileRef = AD5D07C93D69F597C46CDBE0 /* PredicatesTest.m */; };
AD5D06366081DCEAAF4F121D /* OptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = AD5D0F2B61FF5A1B02D13FEE /* OptionTest.m */; };
AD5D06568EE20458CC7534B8 /* Coercions.h in Headers */ = {isa = PBXBuildFile; fileRef = AD5D017DB1FD4B95419BAE97 /* Coercions.h */; settings = {ATTRIBUTES = (Public, ); }; };
AD5D0694159A68ECBBB6EF7D /* Option.h in Headers */ = {isa = PBXBuildFile; fileRef = AD5D06ADB7CE85353766EFE4 /* Option.h */; settings = {ATTRIBUTES = (Public, ); }; };
AD5D06947AEE94547C042CED /* FilterEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = AD5D09B6816D852EF7D24525 /* FilterEnumerator.m */; };
AD5D06B0CD30E702B8A96F6B /* RangeTest.m in Sources */ = {isa = PBXBuildFile; fileRef = AD5D030032CA7EEB3C328E6F /* RangeTest.m */; };
Expand Down Expand Up @@ -104,18 +103,29 @@
BCA1EF611BF63E6C002D0A7C /* OCTotallyLazyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BCA1EF601BF63E6C002D0A7C /* OCTotallyLazyTests.m */; };
BCEBE1071C087FFA001F4F9C /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCEBE1061C087FFA001F4F9C /* OCMock.framework */; };
BCEBE10B1C089679001F4F9C /* OCHamcrestIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCEBE10A1C089679001F4F9C /* OCHamcrestIOS.framework */; };
BCEBE10E1C089B43001F4F9C /* OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BCEBE10D1C089B43001F4F9C /* OCMock.framework */; };
BCFE6DF81C164680009C5ED7 /* OCMock.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = BCEBE10D1C089B43001F4F9C /* OCMock.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
BCC381B91C1B10F10074071C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BCA1EF481BF63E6C002D0A7C /* Project object */;
proxyType = 1;
remoteGlobalIDString = BCA1EF501BF63E6C002D0A7C;
remoteInfo = OCTotallyLazy;
};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
BCEBE10C1C089A6D001F4F9C /* CopyFiles */ = {
BCEBE10C1C089A6D001F4F9C /* Copy Files */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 16;
files = (
BCEBE10E1C089B43001F4F9C /* OCMock.framework in CopyFiles */,
BCFE6DF81C164680009C5ED7 /* OCMock.framework in Copy Files */,
);
name = "Copy Files";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
Expand All @@ -131,7 +141,6 @@
AD5D014BBEE164A58DFB8547 /* NoSuchElementException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoSuchElementException.h; sourceTree = "<group>"; };
AD5D016741C44342D9C85EFF /* NSSet+OCTotallyLazy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSSet+OCTotallyLazy.h"; sourceTree = "<group>"; };
AD5D017611F0CF3321411539 /* EnumerateEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EnumerateEnumerator.m; sourceTree = "<group>"; };
AD5D017DB1FD4B95419BAE97 /* Coercions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Coercions.h; sourceTree = "<group>"; };
AD5D01911E9A29F37CB07547 /* EmptyEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmptyEnumerator.h; sourceTree = "<group>"; };
AD5D01EF0FF6481CE63AD7AE /* Function2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Function2.h; sourceTree = "<group>"; };
AD5D026702EBEF901C4486C5 /* Function1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Function1.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -375,7 +384,6 @@
BCA1EF561BF63E6C002D0A7C /* Info.plist */,
AD5D0C46D4941E773E018857 /* Callables.h */,
AD5D08754463531EBC0FE74D /* Callables.m */,
AD5D017DB1FD4B95419BAE97 /* Coercions.h */,
AD5D0C3FB063C934B6CDCCD0 /* EasyEnumerable.h */,
AD5D003F07F16CFEC064A099 /* EasyEnumerable.m */,
AD5D06E13013F77E5160C973 /* Enumerable.h */,
Expand Down Expand Up @@ -452,7 +460,6 @@
buildActionMask = 2147483647;
files = (
AD5D0A98364F1BFF1EF731B4 /* Callables.h in Headers */,
AD5D06568EE20458CC7534B8 /* Coercions.h in Headers */,
AD5D049A2E6244EED2656814 /* EasyEnumerable.h in Headers */,
AD5D041E280AFEE6DDAC9FFD /* Enumerable.h in Headers */,
AD5D0B0AC6E8A059F1A3F9FA /* Flattenable.h in Headers */,
Expand Down Expand Up @@ -524,11 +531,12 @@
BCA1EF571BF63E6C002D0A7C /* Sources */,
BCA1EF581BF63E6C002D0A7C /* Frameworks */,
BCA1EF591BF63E6C002D0A7C /* Resources */,
BCEBE10C1C089A6D001F4F9C /* CopyFiles */,
BCEBE10C1C089A6D001F4F9C /* Copy Files */,
);
buildRules = (
);
dependencies = (
BCC381BA1C1B10F10074071C /* PBXTargetDependency */,
);
name = OCTotallyLazyTests;
productName = OCTotallyLazyTests;
Expand Down Expand Up @@ -656,6 +664,14 @@
};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
BCC381BA1C1B10F10074071C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = BCA1EF501BF63E6C002D0A7C /* OCTotallyLazy */;
targetProxy = BCC381B91C1B10F10074071C /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
BCA1EF631BF63E6C002D0A7C /* Debug */ = {
isa = XCBuildConfiguration;
Expand Down Expand Up @@ -796,14 +812,15 @@
"$(PROJECT_DIR)/Carthage/Build/Mac",
"$(PROJECT_DIR)/PrecompiledFrameworks",
);
HEADER_SEARCH_PATHS = "\"$(CONFIGURATION_TEMP_DIR)/$(PROJECT_NAME).build/DerivedSources\"/**";
INFOPLIST_FILE = OCTotallyLazyTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = octl.OCTotallyLazyTests;
PRODUCT_NAME = "$(TARGET_NAME)";
VALID_ARCHS = "arm64 armv7 armv7s";
VALID_ARCHS = "arm64 armv7 armv7s x86_64 i386";
};
name = Debug;
};
Expand All @@ -818,14 +835,15 @@
"$(PROJECT_DIR)/Carthage/Build/Mac",
"$(PROJECT_DIR)/PrecompiledFrameworks",
);
HEADER_SEARCH_PATHS = "\"$(CONFIGURATION_TEMP_DIR)/$(PROJECT_NAME).build/DerivedSources\"/**";
INFOPLIST_FILE = OCTotallyLazyTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = octl.OCTotallyLazyTests;
PRODUCT_NAME = "$(TARGET_NAME)";
VALID_ARCHS = "arm64 armv7 armv7s";
VALID_ARCHS = "arm64 armv7 armv7s x86_64 i386";
};
name = Release;
};
Expand Down
Binary file not shown.
16 changes: 0 additions & 16 deletions OCTotallyLazy/Coercions.h

This file was deleted.

1 change: 0 additions & 1 deletion OCTotallyLazy/OCTotallyLazy.h
@@ -1,5 +1,4 @@
#import <OCTotallyLazy/Callables.h>
#import <OCTotallyLazy/Coercions.h>
#import <OCTotallyLazy/Enumerable.h>
#import <OCTotallyLazy/Flattenable.h>
#import <OCTotallyLazy/Functions.h>
Expand Down
2 changes: 1 addition & 1 deletion OCTotallyLazy/Range.h
@@ -1,6 +1,6 @@
#import <Foundation/Foundation.h>
#import "Sequence.h"
#ifndef TL_SHORTHAND
#ifdef TL_SHORTHAND
#define range(num) [Range range:num]
#endif

Expand Down
13 changes: 1 addition & 12 deletions OCTotallyLazy/numbers/Numbers.h
Expand Up @@ -56,15 +56,4 @@ static FUNCTION1 TL_add(NSNumber *addition) {

static FUNCTION1 TL_subtract(NSNumber *subtractor) {
return [Numbers substract:subtractor];
}

#ifndef TL_SHORTHAND
#define min() TL_min()
#define max() TL_max()
#define sum() TL_sum()
#define average() TL_average()
#define multiplyBy(multiplier) TL_multiplyBy(multiplier)
#define divideBy(divisor) TL_divideBy(divisor)
#define add(addition) TL_add(addition)
#define subtract(subtractor) TL_subtract(subtractor)
#endif
}
2 changes: 1 addition & 1 deletion OCTotallyLazy/numbers/Numbers.m
Expand Up @@ -60,7 +60,7 @@ + (FUNCTION2)add {

+ (FUNCTION1)add:(NSNumber *)addition {
return [^(NSNumber *number) {
return [NSNumber numberWithDouble:number.doubleValue + addition.doubleValue];
return @(number.doubleValue + addition.doubleValue);
} copy];
}

Expand Down
79 changes: 14 additions & 65 deletions OCTotallyLazy/predicates/Predicates.h
Expand Up @@ -30,68 +30,17 @@
+ (PREDICATE)whileTrue:(PREDICATE)predicate;
@end

static PREDICATE TL_alternate(BOOL startState) {
return [Predicates alternate:startState];
}
static PREDICATE TL_and(PREDICATE left, PREDICATE right) {
return [Predicates andLeft:left withRight:right];
}
static PREDICATE TL_or(PREDICATE left, PREDICATE right) {
return [Predicates orLeft:left withRight:right];
}
static PREDICATE TL_countTo(int n) {
return [Predicates countTo:n];
}
static PREDICATE TL_containedIn(NSArray *existing) {
return [Predicates containedIn:existing];
}
static PREDICATE TL_containsString(NSString *toMatch) {
return [Predicates containsString:toMatch];
}
static PREDICATE TL_equalTo(id comparable) {
return [Predicates equalTo:comparable];
}
static PREDICATE TL_everyNth(int n) {
return [Predicates everyNth:n];
}
static PREDICATE TL_greaterThan(NSNumber *comparable) {
return [Predicates greaterThan:comparable];
}
static PREDICATE TL_lessThan(NSNumber *comparable) {
return [Predicates lessThan:comparable];
}
static PREDICATE TL_lessThanOrEqualTo(NSNumber *comparable) {
return [Predicates lessThanOrEqualTo:comparable];
}
static PREDICATE TL_not(PREDICATE predicate) {
return [Predicates not:predicate];
}
static PREDICATE TL_startsWith(NSString *prefix) {
return [Predicates startsWith:prefix];
}
static PREDICATE TL_whileTrue(PREDICATE predicate) {
return [Predicates whileTrue:predicate];
}

#ifndef TL_LAMBDA
#define lambda(s, statement) ^(id s){return statement;}
#endif

#ifndef TL_LAMBDA_SHORTHAND
#define _(statement) ^(id _){return statement;}
#endif

#ifndef TL_SHORTHAND
#define alternate(startState) TL_alternate(startState)
#define and(left, right) TL_and(left, right)
#define containsStr(comparable) TL_containsString(comparable)
#define countTo(comparable) TL_countTo(comparable)
#define eqTo(comparable) TL_equalTo(comparable)
#define evryNth TL_everyNth
#define gtThan(comparable) TL_greaterThan(comparable)
#define in(array) TL_containedIn(array)
#define ltThan(comparable) TL_lessThan(comparable)
#define not(predicate) TL_not(predicate)
#define or(left, right) TL_or(left, right)
#define startingWith(comparable) TL_startsWith(comparable)
#endif
extern PREDICATE TL_alternate(BOOL startState);
extern PREDICATE TL_and(PREDICATE left, PREDICATE right);
extern PREDICATE TL_or(PREDICATE left, PREDICATE right);
extern PREDICATE TL_countTo(int n);
extern PREDICATE TL_containedIn(NSArray *existing);
extern PREDICATE TL_containsString(NSString *toMatch);
extern PREDICATE TL_equalTo(id comparable);
extern PREDICATE TL_everyNth(int n);
extern PREDICATE TL_greaterThan(NSNumber *comparable);
extern PREDICATE TL_lessThan(NSNumber *comparable);
extern PREDICATE TL_lessThanOrEqualTo(NSNumber *comparable);
extern PREDICATE TL_not(PREDICATE predicate);
extern PREDICATE TL_startsWith(NSString *prefix);
extern PREDICATE TL_whileTrue(PREDICATE predicate);
45 changes: 44 additions & 1 deletion OCTotallyLazy/predicates/Predicates.m
Expand Up @@ -82,4 +82,47 @@ + (PREDICATE)whileTrue:(PREDICATE)predicate {
return boolState;
} copy];
}
@end
@end

extern PREDICATE TL_alternate(BOOL startState) {
return [Predicates alternate:startState];
}
extern PREDICATE TL_and(PREDICATE left, PREDICATE right) {
return [Predicates andLeft:left withRight:right];
}
extern PREDICATE TL_or(PREDICATE left, PREDICATE right) {
return [Predicates orLeft:left withRight:right];
}
extern PREDICATE TL_countTo(int n) {
return [Predicates countTo:n];
}
extern PREDICATE TL_containedIn(NSArray *existing) {
return [Predicates containedIn:existing];
}
extern PREDICATE TL_containsString(NSString *toMatch) {
return [Predicates containsString:toMatch];
}
extern PREDICATE TL_equalTo(id comparable) {
return [Predicates equalTo:comparable];
}
extern PREDICATE TL_everyNth(int n) {
return [Predicates everyNth:n];
}
extern PREDICATE TL_greaterThan(NSNumber *comparable) {
return [Predicates greaterThan:comparable];
}
extern PREDICATE TL_lessThan(NSNumber *comparable) {
return [Predicates lessThan:comparable];
}
extern PREDICATE TL_lessThanOrEqualTo(NSNumber *comparable) {
return [Predicates lessThanOrEqualTo:comparable];
}
extern PREDICATE TL_not(PREDICATE predicate) {
return [Predicates not:predicate];
}
extern PREDICATE TL_startsWith(NSString *prefix) {
return [Predicates startsWith:prefix];
}
extern PREDICATE TL_whileTrue(PREDICATE predicate) {
return [Predicates whileTrue:predicate];
}
6 changes: 4 additions & 2 deletions OCTotallyLazyTests/FunctionsTest.m
@@ -1,3 +1,5 @@
#define TL_COERCIONS

#import "OCTotallyLazyTestCase.h"

@interface FunctionsTest : OCTotallyLazyTestCase
Expand All @@ -6,11 +8,11 @@ @interface FunctionsTest : OCTotallyLazyTestCase
@implementation FunctionsTest

- (void)testCanComposeFunctions {
assertThat([[Functions compose:f1([Numbers add:num(10)]) and:f1([Numbers multiplyBy:num(3)])] apply:num(2)], is(num(36)));
assertThat([[Functions compose:f1([Numbers add:@(10)]) and:f1([Numbers multiplyBy:@(3)])] apply:@(2)], is(@(36)));
}

- (void)testCanPartiallyApplyFunction2 {
assertThat([[f2([Numbers add]) apply:num(1)] apply:num(2)], equalTo(num(3)));
assertThat([[f2([Numbers add]) apply:@(1)] apply:@(2)], equalTo(@(3)));
}

@end
19 changes: 10 additions & 9 deletions OCTotallyLazyTests/NSArrayTest.m
@@ -1,3 +1,4 @@
#define TL_COERCIONS
#import "OCTotallyLazyTestCase.h"

@interface NSArrayTest : OCTotallyLazyTestCase
Expand All @@ -6,16 +7,16 @@ @interface NSArrayTest : OCTotallyLazyTestCase
@implementation NSArrayTest

-(void)testDrop {
NSArray *items = array(num(1), num(5), num(7), nil);
assertThat([items drop:2], hasItems(num(7), nil));
assertThat([items drop:1], hasItems(num(5), num(7), nil));
NSArray *items = array(@(1), @(5), @(7), nil);
assertThat([items drop:2], hasItems(@(7), nil));
assertThat([items drop:1], hasItems(@(5), @(7), nil));
assertThat([array(nil) drop:1], isEmpty());
}

-(void)testDropWhile {
NSArray *items = array(num(7), num(5), num(4), nil);
assertThat([items dropWhile:TL_greaterThan(num(4))], hasItems(num(4), nil));
assertThat([items dropWhile:TL_greaterThan(num(5))], hasItems(num(5), num(4), nil));
NSArray *items = array(@(7), @(5), @(4), nil);
assertThat([items dropWhile:TL_greaterThan(@(4))], hasItems(@(4), nil));
assertThat([items dropWhile:TL_greaterThan(@(5))], hasItems(@(5), @(4), nil));
}

- (void)testFilter {
Expand Down Expand Up @@ -141,14 +142,14 @@ -(void)testToString {
assertThat([items toString:@","], equalTo(@"one,two,three"));
assertThat([items toString:@"(" separator:@"," end:@")"], equalTo(@"(one,two,three)"));

NSArray *numbers = array(num(1), num(2), num(3), nil);
NSArray *numbers = array(@(1), @(2), @(3), nil);
assertThat([numbers toString], equalTo(@"123"));
}

-(void)testZip {
NSArray *items = array(@"one", @"two", nil);
NSArray *zip = [items zip:array(num(1), num(2), nil)];
assertThat(zip, hasItems([Pair left:@"one" right:num(1)], [Pair left:@"two" right:num(2)], nil));
NSArray *zip = [items zip:array(@(1), @(2), nil)];
assertThat(zip, hasItems([Pair left:@"one" right:@(1)], [Pair left:@"two" right:@(2)], nil));
}

-(void)testAsSet {
Expand Down
5 changes: 5 additions & 0 deletions OCTotallyLazyTests/OCTotallyLazyTestCase.h
@@ -1,3 +1,8 @@
#define TL_SHORTHAND
#define TL_LAMBDA
#define TL_LAMBDA_SHORTHAND
#define TL_COERCIONS

#import <OCHamcrest/OCHamcrest.h>
#import <XCTest/XCTest.h>
#import <OCTotallyLazy/OCTotallyLazy.h>
Expand Down

0 comments on commit 5a428d8

Please sign in to comment.