diff --git a/.DS_Store b/.DS_Store
deleted file mode 100644
index 1713d9f..0000000
Binary files a/.DS_Store and /dev/null differ
diff --git a/.gitignore b/.gitignore
index 86e8dc3..f196f1a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+.DS_Store
# Xcode
#
build/
@@ -23,11 +24,11 @@ DerivedData
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
-# Pods/
+Pods/
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
-# Carthage/Checkouts
+Carthage/Checkouts
-Carthage/Build
\ No newline at end of file
+Carthage/Build
diff --git a/Validator/ValidationError.swift b/SwiftValidator/Core/ValidationError.swift
similarity index 100%
rename from Validator/ValidationError.swift
rename to SwiftValidator/Core/ValidationError.swift
diff --git a/Validator/Validator.swift b/SwiftValidator/Core/Validator.swift
similarity index 100%
rename from Validator/Validator.swift
rename to SwiftValidator/Core/Validator.swift
diff --git a/SwiftValidator/Info.plist b/SwiftValidator/Info.plist
new file mode 100644
index 0000000..6b1c8c6
--- /dev/null
+++ b/SwiftValidator/Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ me.jeffpotter.$(PRODUCT_NAME:rfc1034identifier)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+ NSPrincipalClass
+
+
+
diff --git a/Validator/ConfirmRule.swift b/SwiftValidator/Rules/ConfirmRule.swift
similarity index 100%
rename from Validator/ConfirmRule.swift
rename to SwiftValidator/Rules/ConfirmRule.swift
diff --git a/Validator/EmailRule.swift b/SwiftValidator/Rules/EmailRule.swift
similarity index 100%
rename from Validator/EmailRule.swift
rename to SwiftValidator/Rules/EmailRule.swift
diff --git a/Validator/FloatRule.swift b/SwiftValidator/Rules/FloatRule.swift
similarity index 100%
rename from Validator/FloatRule.swift
rename to SwiftValidator/Rules/FloatRule.swift
diff --git a/Validator/FullNameRule.swift b/SwiftValidator/Rules/FullNameRule.swift
similarity index 100%
rename from Validator/FullNameRule.swift
rename to SwiftValidator/Rules/FullNameRule.swift
diff --git a/Validator/MaxLengthRule.swift b/SwiftValidator/Rules/MaxLengthRule.swift
similarity index 100%
rename from Validator/MaxLengthRule.swift
rename to SwiftValidator/Rules/MaxLengthRule.swift
diff --git a/Validator/MinLengthRule.swift b/SwiftValidator/Rules/MinLengthRule.swift
similarity index 100%
rename from Validator/MinLengthRule.swift
rename to SwiftValidator/Rules/MinLengthRule.swift
diff --git a/Validator/PasswordRule.swift b/SwiftValidator/Rules/PasswordRule.swift
similarity index 100%
rename from Validator/PasswordRule.swift
rename to SwiftValidator/Rules/PasswordRule.swift
diff --git a/Validator/PhoneNumberRule.swift b/SwiftValidator/Rules/PhoneNumberRule.swift
similarity index 100%
rename from Validator/PhoneNumberRule.swift
rename to SwiftValidator/Rules/PhoneNumberRule.swift
diff --git a/Validator/RegexRule.swift b/SwiftValidator/Rules/RegexRule.swift
similarity index 100%
rename from Validator/RegexRule.swift
rename to SwiftValidator/Rules/RegexRule.swift
diff --git a/Validator/RequiredRule.swift b/SwiftValidator/Rules/RequiredRule.swift
similarity index 100%
rename from Validator/RequiredRule.swift
rename to SwiftValidator/Rules/RequiredRule.swift
diff --git a/Validator/Rule.swift b/SwiftValidator/Rules/Rule.swift
similarity index 100%
rename from Validator/Rule.swift
rename to SwiftValidator/Rules/Rule.swift
diff --git a/Validator/ValidationRule.swift b/SwiftValidator/Rules/ValidationRule.swift
similarity index 100%
rename from Validator/ValidationRule.swift
rename to SwiftValidator/Rules/ValidationRule.swift
diff --git a/Validator/ZipCodeRule.swift b/SwiftValidator/Rules/ZipCodeRule.swift
similarity index 100%
rename from Validator/ZipCodeRule.swift
rename to SwiftValidator/Rules/ZipCodeRule.swift
diff --git a/SwiftValidator/SwiftValidator.h b/SwiftValidator/SwiftValidator.h
new file mode 100644
index 0000000..ad88bfb
--- /dev/null
+++ b/SwiftValidator/SwiftValidator.h
@@ -0,0 +1,19 @@
+//
+// SwiftValidator.h
+// SwiftValidator
+//
+// Created by Rusty Zarse on 9/3/15.
+// Copyright (c) 2015 jpotts18. All rights reserved.
+//
+
+#import
+
+//! Project version number for SwiftValidator.
+FOUNDATION_EXPORT double SwiftValidatorVersionNumber;
+
+//! Project version string for SwiftValidator.
+FOUNDATION_EXPORT const unsigned char SwiftValidatorVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/SwiftValidatorTests/Info.plist b/SwiftValidatorTests/Info.plist
new file mode 100644
index 0000000..defcaa7
--- /dev/null
+++ b/SwiftValidatorTests/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ com.levous.$(PRODUCT_NAME:rfc1034identifier)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+
+
diff --git a/SwiftValidatorTests/SwiftValidatorTests.swift b/SwiftValidatorTests/SwiftValidatorTests.swift
new file mode 100644
index 0000000..fbaaf13
--- /dev/null
+++ b/SwiftValidatorTests/SwiftValidatorTests.swift
@@ -0,0 +1,36 @@
+//
+// SwiftValidatorTests.swift
+// SwiftValidatorTests
+//
+// Created by Rusty Zarse on 9/3/15.
+// Copyright (c) 2015 jpotts18. All rights reserved.
+//
+
+import UIKit
+import XCTest
+
+class SwiftValidatorTests: XCTestCase {
+
+ override func setUp() {
+ super.setUp()
+ // Put setup code here. This method is called before the invocation of each test method in the class.
+ }
+
+ override func tearDown() {
+ // Put teardown code here. This method is called after the invocation of each test method in the class.
+ super.tearDown()
+ }
+
+ func testExample() {
+ // This is an example of a functional test case.
+ XCTAssert(true, "Pass")
+ }
+
+ func testPerformanceExample() {
+ // This is an example of a performance test case.
+ self.measureBlock() {
+ // Put the code you want to measure the time of here.
+ }
+ }
+
+}
diff --git a/Validator.xcodeproj/project.pbxproj b/Validator.xcodeproj/project.pbxproj
index 2118038..c6ec0c4 100644
--- a/Validator.xcodeproj/project.pbxproj
+++ b/Validator.xcodeproj/project.pbxproj
@@ -7,27 +7,32 @@
objects = {
/* Begin PBXBuildFile section */
- 623F29941AD836E6005B26CB /* MaxLengthRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623F29931AD836E6005B26CB /* MaxLengthRule.swift */; };
- 628637261AAA474B00BC8FCF /* MinLengthRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628637251AAA474B00BC8FCF /* MinLengthRule.swift */; };
- 628637281AAA49E300BC8FCF /* ConfirmRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628637271AAA49E300BC8FCF /* ConfirmRule.swift */; };
62D1AE1D1A1E6D4400E4DFF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62D1AE1C1A1E6D4400E4DFF8 /* AppDelegate.swift */; };
- 62D1AE1F1A1E6D4400E4DFF8 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62D1AE1E1A1E6D4400E4DFF8 /* ViewController.swift */; };
62D1AE221A1E6D4400E4DFF8 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 62D1AE201A1E6D4400E4DFF8 /* Main.storyboard */; };
62D1AE241A1E6D4400E4DFF8 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 62D1AE231A1E6D4400E4DFF8 /* Images.xcassets */; };
62D1AE271A1E6D4400E4DFF8 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 62D1AE251A1E6D4400E4DFF8 /* LaunchScreen.xib */; };
62D1AE331A1E6D4500E4DFF8 /* ValidatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62D1AE321A1E6D4500E4DFF8 /* ValidatorTests.swift */; };
- 62D1AE4F1A1E6FF800E4DFF8 /* ValidationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62D1AE451A1E6FF800E4DFF8 /* ValidationError.swift */; };
- 62D1AE521A1E6FF800E4DFF8 /* ValidationRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62D1AE481A1E6FF800E4DFF8 /* ValidationRule.swift */; };
- 62D1AE581A1E700200E4DFF8 /* Validator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62D1AE541A1E700200E4DFF8 /* Validator.swift */; };
- 62DC8D651AAA42520095DFA7 /* Rule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62DC8D641AAA42520095DFA7 /* Rule.swift */; };
- 62DC8D681AAA42920095DFA7 /* FullNameRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62DC8D671AAA42920095DFA7 /* FullNameRule.swift */; };
- 62DC8D6C1AAA42CE0095DFA7 /* EmailRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62DC8D691AAA42CE0095DFA7 /* EmailRule.swift */; };
- 62DC8D6D1AAA42CE0095DFA7 /* RequiredRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62DC8D6A1AAA42CE0095DFA7 /* RequiredRule.swift */; };
- 62DC8D6E1AAA42CE0095DFA7 /* PasswordRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62DC8D6B1AAA42CE0095DFA7 /* PasswordRule.swift */; };
- 62DC8D711AAA43110095DFA7 /* ZipCodeRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62DC8D701AAA43110095DFA7 /* ZipCodeRule.swift */; };
- 62E9E2AD1ACFB336000A939C /* RegexRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E9E2AC1ACFB336000A939C /* RegexRule.swift */; };
- D7C1D97E1BA25940008CE686 /* PhoneNumberRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7C1D97D1BA25940008CE686 /* PhoneNumberRule.swift */; settings = {ASSET_TAGS = (); }; };
- DC5A35EC1AF99BA60013FE6B /* FloatRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC5A35EB1AF99BA60013FE6B /* FloatRule.swift */; };
+ FB465CB81B9884F400398388 /* SwiftValidator.h in Headers */ = {isa = PBXBuildFile; fileRef = FB465CB71B9884F400398388 /* SwiftValidator.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FB465CBE1B9884F400398388 /* SwiftValidator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB465CB31B9884F400398388 /* SwiftValidator.framework */; };
+ FB465CC71B9884F400398388 /* SwiftValidatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CC61B9884F400398388 /* SwiftValidatorTests.swift */; };
+ FB465CCA1B9884F400398388 /* SwiftValidator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB465CB31B9884F400398388 /* SwiftValidator.framework */; };
+ FB465CCB1B9884F400398388 /* SwiftValidator.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FB465CB31B9884F400398388 /* SwiftValidator.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ FB465CE11B98854100398388 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62D1AE1E1A1E6D4400E4DFF8 /* ViewController.swift */; };
+ FB465CF31B9889EA00398388 /* ConfirmRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CE31B9889EA00398388 /* ConfirmRule.swift */; };
+ FB465CF41B9889EA00398388 /* EmailRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CE41B9889EA00398388 /* EmailRule.swift */; };
+ FB465CF51B9889EA00398388 /* FloatRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CE51B9889EA00398388 /* FloatRule.swift */; };
+ FB465CF61B9889EA00398388 /* FullNameRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CE61B9889EA00398388 /* FullNameRule.swift */; };
+ FB465CF71B9889EA00398388 /* MaxLengthRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CE71B9889EA00398388 /* MaxLengthRule.swift */; };
+ FB465CF81B9889EA00398388 /* MinLengthRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CE81B9889EA00398388 /* MinLengthRule.swift */; };
+ FB465CF91B9889EA00398388 /* PasswordRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CE91B9889EA00398388 /* PasswordRule.swift */; };
+ FB465CFA1B9889EA00398388 /* PhoneNumberRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CEA1B9889EA00398388 /* PhoneNumberRule.swift */; };
+ FB465CFB1B9889EA00398388 /* RegexRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CEB1B9889EA00398388 /* RegexRule.swift */; };
+ FB465CFC1B9889EA00398388 /* RequiredRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CEC1B9889EA00398388 /* RequiredRule.swift */; };
+ FB465CFD1B9889EA00398388 /* Rule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CED1B9889EA00398388 /* Rule.swift */; };
+ FB465CFE1B9889EA00398388 /* ValidationRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CEE1B9889EA00398388 /* ValidationRule.swift */; };
+ FB465CFF1B9889EA00398388 /* ZipCodeRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CEF1B9889EA00398388 /* ZipCodeRule.swift */; };
+ FB465D001B9889EA00398388 /* ValidationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CF11B9889EA00398388 /* ValidationError.swift */; };
+ FB465D011B9889EA00398388 /* Validator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB465CF21B9889EA00398388 /* Validator.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -38,12 +43,44 @@
remoteGlobalIDString = 62D1AE161A1E6D4400E4DFF8;
remoteInfo = Validator;
};
+ FB465CBF1B9884F400398388 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 62D1AE0F1A1E6D4400E4DFF8 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FB465CB21B9884F400398388;
+ remoteInfo = SwiftValidator;
+ };
+ FB465CC11B9884F400398388 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 62D1AE0F1A1E6D4400E4DFF8 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 62D1AE161A1E6D4400E4DFF8;
+ remoteInfo = Validator;
+ };
+ FB465CC81B9884F400398388 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 62D1AE0F1A1E6D4400E4DFF8 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FB465CB21B9884F400398388;
+ remoteInfo = SwiftValidator;
+ };
/* End PBXContainerItemProxy section */
+/* Begin PBXCopyFilesBuildPhase section */
+ FB465CD11B9884F400398388 /* Embed Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ FB465CCB1B9884F400398388 /* SwiftValidator.framework in Embed Frameworks */,
+ );
+ name = "Embed Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
/* Begin PBXFileReference section */
- 623F29931AD836E6005B26CB /* MaxLengthRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaxLengthRule.swift; sourceTree = ""; };
- 628637251AAA474B00BC8FCF /* MinLengthRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinLengthRule.swift; sourceTree = ""; };
- 628637271AAA49E300BC8FCF /* ConfirmRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfirmRule.swift; sourceTree = ""; };
62D1AE171A1E6D4400E4DFF8 /* Validator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Validator.app; sourceTree = BUILT_PRODUCTS_DIR; };
62D1AE1B1A1E6D4400E4DFF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
62D1AE1C1A1E6D4400E4DFF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
@@ -54,18 +91,27 @@
62D1AE2C1A1E6D4500E4DFF8 /* ValidatorTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ValidatorTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
62D1AE311A1E6D4500E4DFF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
62D1AE321A1E6D4500E4DFF8 /* ValidatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValidatorTests.swift; sourceTree = ""; };
- 62D1AE451A1E6FF800E4DFF8 /* ValidationError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationError.swift; sourceTree = ""; };
- 62D1AE481A1E6FF800E4DFF8 /* ValidationRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationRule.swift; sourceTree = ""; };
- 62D1AE541A1E700200E4DFF8 /* Validator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Validator.swift; sourceTree = ""; };
- 62DC8D641AAA42520095DFA7 /* Rule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Rule.swift; sourceTree = ""; };
- 62DC8D671AAA42920095DFA7 /* FullNameRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FullNameRule.swift; sourceTree = ""; };
- 62DC8D691AAA42CE0095DFA7 /* EmailRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmailRule.swift; sourceTree = ""; };
- 62DC8D6A1AAA42CE0095DFA7 /* RequiredRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequiredRule.swift; sourceTree = ""; };
- 62DC8D6B1AAA42CE0095DFA7 /* PasswordRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PasswordRule.swift; sourceTree = ""; };
- 62DC8D701AAA43110095DFA7 /* ZipCodeRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZipCodeRule.swift; sourceTree = ""; };
- 62E9E2AC1ACFB336000A939C /* RegexRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegexRule.swift; sourceTree = ""; };
- D7C1D97D1BA25940008CE686 /* PhoneNumberRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneNumberRule.swift; sourceTree = ""; };
- DC5A35EB1AF99BA60013FE6B /* FloatRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FloatRule.swift; sourceTree = ""; };
+ FB465CB31B9884F400398388 /* SwiftValidator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftValidator.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ FB465CB61B9884F400398388 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ FB465CB71B9884F400398388 /* SwiftValidator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwiftValidator.h; sourceTree = ""; };
+ FB465CBD1B9884F400398388 /* SwiftValidatorTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftValidatorTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ FB465CC51B9884F400398388 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ FB465CC61B9884F400398388 /* SwiftValidatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftValidatorTests.swift; sourceTree = ""; };
+ FB465CE31B9889EA00398388 /* ConfirmRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfirmRule.swift; sourceTree = ""; };
+ FB465CE41B9889EA00398388 /* EmailRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmailRule.swift; sourceTree = ""; };
+ FB465CE51B9889EA00398388 /* FloatRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FloatRule.swift; sourceTree = ""; };
+ FB465CE61B9889EA00398388 /* FullNameRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FullNameRule.swift; sourceTree = ""; };
+ FB465CE71B9889EA00398388 /* MaxLengthRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaxLengthRule.swift; sourceTree = ""; };
+ FB465CE81B9889EA00398388 /* MinLengthRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinLengthRule.swift; sourceTree = ""; };
+ FB465CE91B9889EA00398388 /* PasswordRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PasswordRule.swift; sourceTree = ""; };
+ FB465CEA1B9889EA00398388 /* PhoneNumberRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneNumberRule.swift; sourceTree = ""; };
+ FB465CEB1B9889EA00398388 /* RegexRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegexRule.swift; sourceTree = ""; };
+ FB465CEC1B9889EA00398388 /* RequiredRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequiredRule.swift; sourceTree = ""; };
+ FB465CED1B9889EA00398388 /* Rule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Rule.swift; sourceTree = ""; };
+ FB465CEE1B9889EA00398388 /* ValidationRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationRule.swift; sourceTree = ""; };
+ FB465CEF1B9889EA00398388 /* ZipCodeRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZipCodeRule.swift; sourceTree = ""; };
+ FB465CF11B9889EA00398388 /* ValidationError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationError.swift; sourceTree = ""; };
+ FB465CF21B9889EA00398388 /* Validator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Validator.swift; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -73,6 +119,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ FB465CCA1B9884F400398388 /* SwiftValidator.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -83,23 +130,31 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ FB465CAF1B9884F400398388 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FB465CBA1B9884F400398388 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FB465CBE1B9884F400398388 /* SwiftValidator.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 626BE5EE1A9B8EC600FE6D5C /* Classes */ = {
- isa = PBXGroup;
- children = (
- 62DC8D661AAA42700095DFA7 /* Rules */,
- 62D1AE3C1A1E6FAF00E4DFF8 /* Core */,
- );
- name = Classes;
- sourceTree = "";
- };
62D1AE0E1A1E6D4400E4DFF8 = {
isa = PBXGroup;
children = (
62D1AE191A1E6D4400E4DFF8 /* Validator */,
62D1AE2F1A1E6D4500E4DFF8 /* ValidatorTests */,
+ FB465CB41B9884F400398388 /* SwiftValidator */,
+ FB465CC31B9884F400398388 /* SwiftValidatorTests */,
62D1AE181A1E6D4400E4DFF8 /* Products */,
);
sourceTree = "";
@@ -109,6 +164,8 @@
children = (
62D1AE171A1E6D4400E4DFF8 /* Validator.app */,
62D1AE2C1A1E6D4500E4DFF8 /* ValidatorTests.xctest */,
+ FB465CB31B9884F400398388 /* SwiftValidator.framework */,
+ FB465CBD1B9884F400398388 /* SwiftValidatorTests.xctest */,
);
name = Products;
sourceTree = "";
@@ -116,7 +173,6 @@
62D1AE191A1E6D4400E4DFF8 /* Validator */ = {
isa = PBXGroup;
children = (
- 626BE5EE1A9B8EC600FE6D5C /* Classes */,
62D1AE1C1A1E6D4400E4DFF8 /* AppDelegate.swift */,
62D1AE1E1A1E6D4400E4DFF8 /* ViewController.swift */,
62D1AE201A1E6D4400E4DFF8 /* Main.storyboard */,
@@ -152,37 +208,84 @@
name = "Supporting Files";
sourceTree = "";
};
- 62D1AE3C1A1E6FAF00E4DFF8 /* Core */ = {
+ FB465CB41B9884F400398388 /* SwiftValidator */ = {
isa = PBXGroup;
children = (
- 62D1AE541A1E700200E4DFF8 /* Validator.swift */,
- 62D1AE451A1E6FF800E4DFF8 /* ValidationError.swift */,
- 62D1AE481A1E6FF800E4DFF8 /* ValidationRule.swift */,
+ FB465CE21B9889EA00398388 /* Rules */,
+ FB465CF01B9889EA00398388 /* Core */,
+ FB465CB71B9884F400398388 /* SwiftValidator.h */,
+ FB465CB51B9884F400398388 /* Supporting Files */,
);
- name = Core;
+ path = SwiftValidator;
sourceTree = "";
};
- 62DC8D661AAA42700095DFA7 /* Rules */ = {
+ FB465CB51B9884F400398388 /* Supporting Files */ = {
isa = PBXGroup;
children = (
- 628637271AAA49E300BC8FCF /* ConfirmRule.swift */,
- 62DC8D691AAA42CE0095DFA7 /* EmailRule.swift */,
- DC5A35EB1AF99BA60013FE6B /* FloatRule.swift */,
- 62DC8D671AAA42920095DFA7 /* FullNameRule.swift */,
- 623F29931AD836E6005B26CB /* MaxLengthRule.swift */,
- 628637251AAA474B00BC8FCF /* MinLengthRule.swift */,
- 62DC8D6B1AAA42CE0095DFA7 /* PasswordRule.swift */,
- D7C1D97D1BA25940008CE686 /* PhoneNumberRule.swift */,
- 62E9E2AC1ACFB336000A939C /* RegexRule.swift */,
- 62DC8D6A1AAA42CE0095DFA7 /* RequiredRule.swift */,
- 62DC8D641AAA42520095DFA7 /* Rule.swift */,
- 62DC8D701AAA43110095DFA7 /* ZipCodeRule.swift */,
+ FB465CB61B9884F400398388 /* Info.plist */,
);
- name = Rules;
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ FB465CC31B9884F400398388 /* SwiftValidatorTests */ = {
+ isa = PBXGroup;
+ children = (
+ FB465CC61B9884F400398388 /* SwiftValidatorTests.swift */,
+ FB465CC41B9884F400398388 /* Supporting Files */,
+ );
+ path = SwiftValidatorTests;
+ sourceTree = "";
+ };
+ FB465CC41B9884F400398388 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ FB465CC51B9884F400398388 /* Info.plist */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ FB465CE21B9889EA00398388 /* Rules */ = {
+ isa = PBXGroup;
+ children = (
+ FB465CE31B9889EA00398388 /* ConfirmRule.swift */,
+ FB465CE41B9889EA00398388 /* EmailRule.swift */,
+ FB465CE51B9889EA00398388 /* FloatRule.swift */,
+ FB465CE61B9889EA00398388 /* FullNameRule.swift */,
+ FB465CE71B9889EA00398388 /* MaxLengthRule.swift */,
+ FB465CE81B9889EA00398388 /* MinLengthRule.swift */,
+ FB465CE91B9889EA00398388 /* PasswordRule.swift */,
+ FB465CEA1B9889EA00398388 /* PhoneNumberRule.swift */,
+ FB465CEB1B9889EA00398388 /* RegexRule.swift */,
+ FB465CEC1B9889EA00398388 /* RequiredRule.swift */,
+ FB465CED1B9889EA00398388 /* Rule.swift */,
+ FB465CEE1B9889EA00398388 /* ValidationRule.swift */,
+ FB465CEF1B9889EA00398388 /* ZipCodeRule.swift */,
+ );
+ path = Rules;
+ sourceTree = "";
+ };
+ FB465CF01B9889EA00398388 /* Core */ = {
+ isa = PBXGroup;
+ children = (
+ FB465CF11B9889EA00398388 /* ValidationError.swift */,
+ FB465CF21B9889EA00398388 /* Validator.swift */,
+ );
+ path = Core;
sourceTree = "";
};
/* End PBXGroup section */
+/* Begin PBXHeadersBuildPhase section */
+ FB465CB01B9884F400398388 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FB465CB81B9884F400398388 /* SwiftValidator.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
/* Begin PBXNativeTarget section */
62D1AE161A1E6D4400E4DFF8 /* Validator */ = {
isa = PBXNativeTarget;
@@ -191,10 +294,12 @@
62D1AE131A1E6D4400E4DFF8 /* Sources */,
62D1AE141A1E6D4400E4DFF8 /* Frameworks */,
62D1AE151A1E6D4400E4DFF8 /* Resources */,
+ FB465CD11B9884F400398388 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
+ FB465CC91B9884F400398388 /* PBXTargetDependency */,
);
name = Validator;
productName = Validator;
@@ -219,6 +324,43 @@
productReference = 62D1AE2C1A1E6D4500E4DFF8 /* ValidatorTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
+ FB465CB21B9884F400398388 /* SwiftValidator */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FB465CD01B9884F400398388 /* Build configuration list for PBXNativeTarget "SwiftValidator" */;
+ buildPhases = (
+ FB465CAE1B9884F400398388 /* Sources */,
+ FB465CAF1B9884F400398388 /* Frameworks */,
+ FB465CB01B9884F400398388 /* Headers */,
+ FB465CB11B9884F400398388 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SwiftValidator;
+ productName = SwiftValidator;
+ productReference = FB465CB31B9884F400398388 /* SwiftValidator.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ FB465CBC1B9884F400398388 /* SwiftValidatorTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FB465CD21B9884F400398388 /* Build configuration list for PBXNativeTarget "SwiftValidatorTests" */;
+ buildPhases = (
+ FB465CB91B9884F400398388 /* Sources */,
+ FB465CBA1B9884F400398388 /* Frameworks */,
+ FB465CBB1B9884F400398388 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ FB465CC01B9884F400398388 /* PBXTargetDependency */,
+ FB465CC21B9884F400398388 /* PBXTargetDependency */,
+ );
+ name = SwiftValidatorTests;
+ productName = SwiftValidatorTests;
+ productReference = FB465CBD1B9884F400398388 /* SwiftValidatorTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -236,6 +378,13 @@
CreatedOnToolsVersion = 6.1;
TestTargetID = 62D1AE161A1E6D4400E4DFF8;
};
+ FB465CB21B9884F400398388 = {
+ CreatedOnToolsVersion = 6.4;
+ };
+ FB465CBC1B9884F400398388 = {
+ CreatedOnToolsVersion = 6.4;
+ TestTargetID = 62D1AE161A1E6D4400E4DFF8;
+ };
};
};
buildConfigurationList = 62D1AE121A1E6D4400E4DFF8 /* Build configuration list for PBXProject "Validator" */;
@@ -253,6 +402,8 @@
targets = (
62D1AE161A1E6D4400E4DFF8 /* Validator */,
62D1AE2B1A1E6D4500E4DFF8 /* ValidatorTests */,
+ FB465CB21B9884F400398388 /* SwiftValidator */,
+ FB465CBC1B9884F400398388 /* SwiftValidatorTests */,
);
};
/* End PBXProject section */
@@ -275,6 +426,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ FB465CB11B9884F400398388 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FB465CBB1B9884F400398388 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -282,23 +447,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 62DC8D681AAA42920095DFA7 /* FullNameRule.swift in Sources */,
- 62E9E2AD1ACFB336000A939C /* RegexRule.swift in Sources */,
- 62D1AE4F1A1E6FF800E4DFF8 /* ValidationError.swift in Sources */,
- 62DC8D6E1AAA42CE0095DFA7 /* PasswordRule.swift in Sources */,
- 62DC8D6C1AAA42CE0095DFA7 /* EmailRule.swift in Sources */,
- D7C1D97E1BA25940008CE686 /* PhoneNumberRule.swift in Sources */,
- 628637281AAA49E300BC8FCF /* ConfirmRule.swift in Sources */,
- 62DC8D651AAA42520095DFA7 /* Rule.swift in Sources */,
- 62D1AE1F1A1E6D4400E4DFF8 /* ViewController.swift in Sources */,
- DC5A35EC1AF99BA60013FE6B /* FloatRule.swift in Sources */,
- 62DC8D6D1AAA42CE0095DFA7 /* RequiredRule.swift in Sources */,
+ FB465CE11B98854100398388 /* ViewController.swift in Sources */,
62D1AE1D1A1E6D4400E4DFF8 /* AppDelegate.swift in Sources */,
- 62D1AE581A1E700200E4DFF8 /* Validator.swift in Sources */,
- 628637261AAA474B00BC8FCF /* MinLengthRule.swift in Sources */,
- 62DC8D711AAA43110095DFA7 /* ZipCodeRule.swift in Sources */,
- 62D1AE521A1E6FF800E4DFF8 /* ValidationRule.swift in Sources */,
- 623F29941AD836E6005B26CB /* MaxLengthRule.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -310,6 +460,36 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ FB465CAE1B9884F400398388 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FB465CF41B9889EA00398388 /* EmailRule.swift in Sources */,
+ FB465CF61B9889EA00398388 /* FullNameRule.swift in Sources */,
+ FB465CFF1B9889EA00398388 /* ZipCodeRule.swift in Sources */,
+ FB465CF91B9889EA00398388 /* PasswordRule.swift in Sources */,
+ FB465CFD1B9889EA00398388 /* Rule.swift in Sources */,
+ FB465CFA1B9889EA00398388 /* PhoneNumberRule.swift in Sources */,
+ FB465CF51B9889EA00398388 /* FloatRule.swift in Sources */,
+ FB465D011B9889EA00398388 /* Validator.swift in Sources */,
+ FB465CFE1B9889EA00398388 /* ValidationRule.swift in Sources */,
+ FB465CF31B9889EA00398388 /* ConfirmRule.swift in Sources */,
+ FB465D001B9889EA00398388 /* ValidationError.swift in Sources */,
+ FB465CFC1B9889EA00398388 /* RequiredRule.swift in Sources */,
+ FB465CFB1B9889EA00398388 /* RegexRule.swift in Sources */,
+ FB465CF81B9889EA00398388 /* MinLengthRule.swift in Sources */,
+ FB465CF71B9889EA00398388 /* MaxLengthRule.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FB465CB91B9884F400398388 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FB465CC71B9884F400398388 /* SwiftValidatorTests.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -318,6 +498,21 @@
target = 62D1AE161A1E6D4400E4DFF8 /* Validator */;
targetProxy = 62D1AE2D1A1E6D4500E4DFF8 /* PBXContainerItemProxy */;
};
+ FB465CC01B9884F400398388 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FB465CB21B9884F400398388 /* SwiftValidator */;
+ targetProxy = FB465CBF1B9884F400398388 /* PBXContainerItemProxy */;
+ };
+ FB465CC21B9884F400398388 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 62D1AE161A1E6D4400E4DFF8 /* Validator */;
+ targetProxy = FB465CC11B9884F400398388 /* PBXContainerItemProxy */;
+ };
+ FB465CC91B9884F400398388 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FB465CB21B9884F400398388 /* SwiftValidator */;
+ targetProxy = FB465CC81B9884F400398388 /* PBXContainerItemProxy */;
+ };
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
@@ -468,6 +663,94 @@
};
name = Release;
};
+ FB465CCC1B9884F400398388 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ INFOPLIST_FILE = SwiftValidator/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 8.1;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ FB465CCD1B9884F400398388 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ GCC_NO_COMMON_BLOCKS = YES;
+ INFOPLIST_FILE = SwiftValidator/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 8.1;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ FB465CCE1B9884F400398388 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(SDKROOT)/Developer/Library/Frameworks",
+ "$(inherited)",
+ );
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ INFOPLIST_FILE = SwiftValidatorTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.4;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Validator.app/Validator";
+ };
+ name = Debug;
+ };
+ FB465CCF1B9884F400398388 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(SDKROOT)/Developer/Library/Frameworks",
+ "$(inherited)",
+ );
+ GCC_NO_COMMON_BLOCKS = YES;
+ INFOPLIST_FILE = SwiftValidatorTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.4;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Validator.app/Validator";
+ };
+ name = Release;
+ };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -498,6 +781,24 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ FB465CD01B9884F400398388 /* Build configuration list for PBXNativeTarget "SwiftValidator" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FB465CCC1B9884F400398388 /* Debug */,
+ FB465CCD1B9884F400398388 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FB465CD21B9884F400398388 /* Build configuration list for PBXNativeTarget "SwiftValidatorTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FB465CCE1B9884F400398388 /* Debug */,
+ FB465CCF1B9884F400398388 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
/* End XCConfigurationList section */
};
rootObject = 62D1AE0F1A1E6D4400E4DFF8 /* Project object */;
diff --git a/Validator.xcodeproj/xcshareddata/xcschemes/SwiftValidator.xcscheme b/Validator.xcodeproj/xcshareddata/xcschemes/SwiftValidator.xcscheme
new file mode 100644
index 0000000..84121f4
--- /dev/null
+++ b/Validator.xcodeproj/xcshareddata/xcschemes/SwiftValidator.xcscheme
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Validator/ViewController.swift b/Validator/ViewController.swift
index 5fa5cd2..6d37f64 100644
--- a/Validator/ViewController.swift
+++ b/Validator/ViewController.swift
@@ -8,7 +8,7 @@
import Foundation
import UIKit
-
+import SwiftValidator
class ViewController: UIViewController , ValidationDelegate, UITextFieldDelegate {
diff --git a/ValidatorTests/ValidatorTests.swift b/ValidatorTests/ValidatorTests.swift
index 8e2e65f..3fa7e36 100644
--- a/ValidatorTests/ValidatorTests.swift
+++ b/ValidatorTests/ValidatorTests.swift
@@ -8,7 +8,8 @@
import UIKit
import XCTest
-import Validator
+import Validator // example app
+import SwiftValidator // framework
class ValidatorTests: XCTestCase {