diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a7019f..cacb02f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 1.3.0 +1. [[MNY-21](https://github.com/danthorpe/Money/pull/21), [MNY-22](https://github.com/danthorpe/Money/pull/22)]: Adds support for initializing `MoneyType`s with minor units. Thanks to [@jlalvarez18](https://github.com/jlalvarez18). +2. [[MNY-23](https://github.com/danthorpe/Money/pull/23)]: Adds some convenience extensions to create  pay payment requests using an array of `PaymentSummaryItem` which is a new type generic over `MoneyType`. This is only available on iOS, and it allows consumers to use `Money` directly with  pay APIs. + # 1.2.1 1. [[MNY-19](https://github.com/danthorpe/Money/pull/19)]: Fixes a bunch of miscellaneous spelling mistakes in the README and code documentation. 2. [[MNY-20](https://github.com/danthorpe/Money/pull/20)]: Fixes a mistake where DVR which is only needed for the test suit was not in a private Cartfile. Also switches to the official @venmo DVR after recent merges in their project. Thanks to @dasmer for this. diff --git a/Examples/Custom Money/Podfile.lock b/Examples/Custom Money/Podfile.lock index abb3aae..c58e599 100644 --- a/Examples/Custom Money/Podfile.lock +++ b/Examples/Custom Money/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - Money (1.1.0): + - Money (1.2.1): - Result (= 0.6.0-beta.6) - SwiftyJSON - ValueCoding @@ -15,7 +15,7 @@ EXTERNAL SOURCES: :path: "../../" SPEC CHECKSUMS: - Money: 9b12218fa90413e429f9f623f52619bb89791722 + Money: 7bf4b32f795e1eb867c2fcebaaf90b3249824438 Result: dc390d0b58f9ec43fcd536f1ebdd130803cc6cbc SwiftyJSON: 592b53bee5ef3dd9b3bebc6b9cb7ee35426ae8c3 ValueCoding: 54486fde2d7b1c2f1eb46de260b95340abed5bde diff --git a/Examples/Custom Money/Pods/Local Podspecs/Money.podspec.json b/Examples/Custom Money/Pods/Local Podspecs/Money.podspec.json index 339aa0e..1ad5f85 100644 --- a/Examples/Custom Money/Pods/Local Podspecs/Money.podspec.json +++ b/Examples/Custom Money/Pods/Local Podspecs/Money.podspec.json @@ -1,6 +1,6 @@ { "name": "Money", - "version": "1.1.0", + "version": "1.2.1", "summary": "Swift types for working with Money.", "description": "Money is a Swift cross platform framework for iOS, watchOS, tvOS and OS X. \n\nIt provides types and functionality to help represent and manipulate money \nand currency related information.", "homepage": "https://github.com/danthorpe/Money", @@ -10,7 +10,7 @@ }, "source": { "git": "https://github.com/danthorpe/Money.git", - "tag": "1.1.0" + "tag": "1.2.1" }, "module_name": "Money", "social_media_url": "https://twitter.com/danthorpe", @@ -22,10 +22,25 @@ "watchos": "2.0" }, "source_files": [ - "Money/*.swift", - "Money/Decimal/*.swift", - "Money/FX/*.swift" + "Money/Shared/*.swift", + "Money/Shared/**/*.swift", + "Money/iOS" ], + "osx": { + "exclude_files": [ + "Money/iOS" + ] + }, + "watchos": { + "exclude_files": [ + "Money/iOS" + ] + }, + "tvos": { + "exclude_files": [ + "Money/iOS" + ] + }, "dependencies": { "ValueCoding": [ diff --git a/Examples/Custom Money/Pods/Manifest.lock b/Examples/Custom Money/Pods/Manifest.lock index abb3aae..c58e599 100644 --- a/Examples/Custom Money/Pods/Manifest.lock +++ b/Examples/Custom Money/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - Money (1.1.0): + - Money (1.2.1): - Result (= 0.6.0-beta.6) - SwiftyJSON - ValueCoding @@ -15,7 +15,7 @@ EXTERNAL SOURCES: :path: "../../" SPEC CHECKSUMS: - Money: 9b12218fa90413e429f9f623f52619bb89791722 + Money: 7bf4b32f795e1eb867c2fcebaaf90b3249824438 Result: dc390d0b58f9ec43fcd536f1ebdd130803cc6cbc SwiftyJSON: 592b53bee5ef3dd9b3bebc6b9cb7ee35426ae8c3 ValueCoding: 54486fde2d7b1c2f1eb46de260b95340abed5bde diff --git a/Examples/Custom Money/Pods/Pods.xcodeproj/project.pbxproj b/Examples/Custom Money/Pods/Pods.xcodeproj/project.pbxproj index 67ac2f7..0336630 100644 --- a/Examples/Custom Money/Pods/Pods.xcodeproj/project.pbxproj +++ b/Examples/Custom Money/Pods/Pods.xcodeproj/project.pbxproj @@ -7,198 +7,200 @@ objects = { /* Begin PBXBuildFile section */ - 0217EDAB41BE6D83A68B4A2339BBA762 /* Money-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 91C4C71A43800346A8BACEA8E5B05DA5 /* Money-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 01CDC2329E573772C61437C6D9E424C6 /* ValueCoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C29D8E4CA9E4CF9452CBCB9F8D56071 /* ValueCoding.framework */; }; + 043D5BD57A25AE71536828CA8DA7FF01 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E9BC048FABEEEF99AB0BC46166AAC88 /* Autogenerated.swift */; }; + 050CCBF1EA6669EBB882EA43B6519150 /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4299D0CBF7A4E89A05E352987824427 /* DecimalNumberType.swift */; }; + 071010808041919584FA4C48CF0EDDF8 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCB9149D7C1AAA968AE461BDB9D1EEE8 /* Result.swift */; }; 09F8C9409DF28C51561C0D4BCBDB7426 /* Pods-Custom Money-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CEE659D9C1D3DEA521E896D331964 /* Pods-Custom Money-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 16CC6804DA661658124C44577F2953E4 /* SwiftyJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E2CDFCF407B3970A3F2FD3C19CCA4CE7 /* SwiftyJSON-dummy.m */; }; - 1F6A8EBF7DF1DD625F8CCDB7AED2F528 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 196613FD4A9A760DD899B3999B10DE39 /* Currency.swift */; }; - 31E645E979F3A5B089FCD8DEC7A3536E /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1FC653D131B20022B75023F33F250B9 /* Result.framework */; }; + 102C7228A7DBF85C365042333B510AAD /* SwiftyJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0216247E5703DEFCB395822BEDEDB978 /* SwiftyJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 159F21B1178289B764BCD3FE003A0885 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1FC653D131B20022B75023F33F250B9 /* Result.framework */; }; + 18B920DEB8C03D96876FED863C3F067D /* ValueCoding-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E95FBF4C047EA6401BB7B12E42A8B7 /* ValueCoding-dummy.m */; }; + 1BE369EA4E4AA3AC22FFEA752BAFE11A /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B22516CBC90CD5563F339D7D2D36CEB /* NSDecimalExtensions.swift */; }; + 3486EA9DA434ABCFB425595607F7CF60 /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA0150BA63C11CE658A19419D5BA0242 /* Decimal.swift */; }; 35575A63DB40EB8EC8BFD8189093A5DB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; - 435ED888CA386BA222E288B1CC8574F5 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCB9149D7C1AAA968AE461BDB9D1EEE8 /* Result.swift */; }; + 36E93D1BBF5A6FCF286387141DD6A1A3 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAC6FFF0A1B09876AD5FBF28732DEEF9 /* Currency.swift */; }; + 36F55053B0603A0FFDE8B95F9C0DE60D /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98BFC35404280D2F4A945B4AB90E6A32 /* Bitcoin.swift */; }; + 39CBED50C7B06A334792D15FB072BAF2 /* Result-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F158272DDE3E68231F6FE2A3DEB56C4E /* Result-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 454630A1C320EC2DB1FF6E8757BFAB9D /* Result-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F2976F6779F80CE007235A83876CE7 /* Result-dummy.m */; }; + 46076C520F75FE0CC485879CA5FA01A4 /* ValueCoding-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 65E593BAC0D422045A94607A9C0A277E /* ValueCoding-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 46B661B9D41457BFE21F2618E7CCC4E0 /* Pods-Custom Money-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9600516FB0E389F99DD6A409A89CA451 /* Pods-Custom Money-dummy.m */; }; - 479158A06CDB3BB92C679F966E9D9E9E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; - 4C88E376338108DCA576487003CFC800 /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A4E605F118FDFF037ACD0C2F7FA3CD /* Yahoo.swift */; }; - 4F31C9D988EDAA919718FC3BD4CDD785 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; - 4F45ED652CD2AAFDE8AEE11F158045B5 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5EEF7A612BFA3D083C868A79762FB39 /* Money.swift */; }; - 554CF5A8F13DEE08C7DB61AF96C42E2A /* Result-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F158272DDE3E68231F6FE2A3DEB56C4E /* Result-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5637E947D3756585ECF976E01D38CC8A /* SwiftyJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31FCA3CC32B1FFB7E577A3FD7C8BDC8 /* SwiftyJSON.swift */; }; - 685E5FA73478973B4D2184A91E4E7FF8 /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597CFBA87C75BE144B401FCC1EC5C927 /* NSDecimalExtensions.swift */; }; - 7E586FC96883817FC458B25FA91BD2CE /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87218D77D4395E00D6D9170F8AFF291B /* Bitcoin.swift */; }; - 7FAE343617CB65AE9CB6BF5CFE4F1134 /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFF73AD3A7CF0FBE9BC94AEAC37858DD /* FX.swift */; }; - 80810DBE1DF76ECAAABA97CC92B7FC97 /* ValueCoding-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 65E593BAC0D422045A94607A9C0A277E /* ValueCoding-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84964756F22AEE07130A328DC0143EFA /* ResultType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F003A917BF6D1C4FBA4D94B06C30179 /* ResultType.swift */; }; - 84E7501479AACC41E67BB26817D9639D /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EEB490E417287676508AF49225E2B9 /* Autogenerated.swift */; }; - 8752AAACF89C0D05BAFAC976E18B43B5 /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 838F4AEA7BF1F57F0BE06B347D822D97 /* OpenExchangeRates.swift */; }; - 92290889D67198C19057765E18109214 /* ValueCoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED5BC5B78EBB608AE95556AC64F2F724 /* ValueCoding.swift */; }; - A235DAAECF32771AAA2A866446349A80 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; - ADF9BB52327C5FFC7A934CDA0EE843D9 /* ValueCoding-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E95FBF4C047EA6401BB7B12E42A8B7 /* ValueCoding-dummy.m */; }; - B97D98FFAAA3C8A163AFDA70C5AAF75C /* SwiftyJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0216247E5703DEFCB395822BEDEDB978 /* SwiftyJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFD28C75A55F161255F8F1C263D779F7 /* Money-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B01F2F57312E8852B8AAE2F384F620E /* Money-dummy.m */; }; - C664644B24E321B0A4A8568F929E69D8 /* ValueCoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C29D8E4CA9E4CF9452CBCB9F8D56071 /* ValueCoding.framework */; }; - CD10415D334D475BA55049F7F5027125 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6555ECBB6D5CDDE1EA197618BD3509AD /* Support.swift */; }; - ECB837E114BC2BC4BBE280CE6CAE9BF4 /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 212F2F7938CA183DECE52229884F8877 /* NSDecimalNumberExtensions.swift */; }; - EDA2FDCE4DBBD0C20B3C52525812F335 /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77FD247247D6D3CDBF638A9DB0EBDB4E /* SwiftyJSON.framework */; }; - F0A058EFFE6ECEE169C2B53704C78963 /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D811F4EED15D28415AF31F21F637295 /* Decimal.swift */; }; - F485847EBE24151C05EE62DCE7204EAF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; - F796D5F5B55CE16B1311C41299E86D0B /* Result-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F2976F6779F80CE007235A83876CE7 /* Result-dummy.m */; }; - F896F74FA7879D4F61DB699A27BF844D /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6E8271D7B956774CA6CD37674C3999C /* DecimalNumberType.swift */; }; + 4EBC5C5FE22229EDD33BDED9F754F600 /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D643686085217B859B62EB64AE65079 /* FX.swift */; }; + 57E91E64CD037A256E4699E0CA7F175D /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F606D7587EF018F692AD17993DB7FC2 /* NSDecimalNumberExtensions.swift */; }; + 6970AE86E02D00EF04C76F2BFE64FC8E /* ResultType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F003A917BF6D1C4FBA4D94B06C30179 /* ResultType.swift */; }; + 7F9E59EE6FF0200ACA36025629303B3A /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2688CBE6732BE29EFC1AB90D9C90FB7C /* OpenExchangeRates.swift */; }; + 9A7EF57674C8EC22B7D65268D0A4DE03 /* Money-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C22C68F5162837507ABB2E5CBA7243A /* Money-dummy.m */; }; + 9C6A17DF519A656ED0784EE10CC4CB6E /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D79982E052F868FEAD4C6B411A43AD /* Money.swift */; }; + 9F788DE02454F4895B117B1FA84DEA91 /* Money-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8689B0915191F6FC3B6A0628A6CB5D71 /* Money-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7F546F1578C13FC4E669EA84D9A143A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; + B0A5F205F967B27C6FDF03220B3634BB /* ValueCoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED5BC5B78EBB608AE95556AC64F2F724 /* ValueCoding.swift */; }; + B689C6A1DE32D8E2CBC8204AC806B3B4 /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1F3AC336A2B14A1E454CFA3053A3446 /* Yahoo.swift */; }; + CA78A8D38649B0911E61216F1024421C /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77FD247247D6D3CDBF638A9DB0EBDB4E /* SwiftyJSON.framework */; }; + CB3F617203CDA93497D7B57E9CA36531 /* ApplePay.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7DED3DF92386E03A6F560446322575E /* ApplePay.swift */; }; + CC5136509641EA8530A96E91EA4EE142 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; + CF0D7CC11E07DB9E560288780B090008 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; + D068F9F5C541D23AAC5A8A8326B0E0EA /* SwiftyJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31FCA3CC32B1FFB7E577A3FD7C8BDC8 /* SwiftyJSON.swift */; }; + E3BCFF79F7FA73444656346BFE183DFB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */; }; + E44DAE377F46DED2E5F35ECCF2B20382 /* SwiftyJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E2CDFCF407B3970A3F2FD3C19CCA4CE7 /* SwiftyJSON-dummy.m */; }; + EDA7178EE56DA34D5AC145BE581FD88C /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 421293E5BE5A4D53D3EFD8B0D85E6C5A /* Support.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 1DFE2A02B5C6BDFE88F8CA3DFB0FC286 /* PBXContainerItemProxy */ = { + 016D73A97AF1E88DAC05D1442CBF12BD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = DCEA67B24DDEA58F2608D2A7E29EC0AE; - remoteInfo = Money; + remoteGlobalIDString = 4BC85735EDC74D4318B525FA45559B2F; + remoteInfo = ValueCoding; }; - 20E2555ABC7481F293A5C37138092ED3 /* PBXContainerItemProxy */ = { + 1DFE2A02B5C6BDFE88F8CA3DFB0FC286 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 335D5C3164D7294DB478331EF58A0C4F; - remoteInfo = Result; + remoteGlobalIDString = 1CC232158DD850F851750D630A1619A0; + remoteInfo = Money; }; - 36023380F037B6AB8D4492DCA3A27CD5 /* PBXContainerItemProxy */ = { + 2E4D0664D7A4441731CDD1F17F0A0717 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = E1BC6514E856EA889BE33605FA7C661A; + remoteGlobalIDString = 8E3382292E423E66A74FE3955E9E2C56; remoteInfo = SwiftyJSON; }; - 39651D11DAC97EA2B23D906D0DE433D1 /* PBXContainerItemProxy */ = { + 36023380F037B6AB8D4492DCA3A27CD5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 5112C7EBB0119AC3BA1E726F52B37099; - remoteInfo = ValueCoding; + remoteGlobalIDString = 8E3382292E423E66A74FE3955E9E2C56; + remoteInfo = SwiftyJSON; }; 41F272EA7F75CA2CEBC8E35579A501C9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 335D5C3164D7294DB478331EF58A0C4F; + remoteGlobalIDString = 23A7293FBB783111F02B04F92721B69F; remoteInfo = Result; }; - 5C0A58B226E00A3E1A7328A37E81607F /* PBXContainerItemProxy */ = { + A8D7D5C5D4B2B0DBEA7CD9A1C6CA1131 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = E1BC6514E856EA889BE33605FA7C661A; - remoteInfo = SwiftyJSON; + remoteGlobalIDString = 4BC85735EDC74D4318B525FA45559B2F; + remoteInfo = ValueCoding; }; - A8D7D5C5D4B2B0DBEA7CD9A1C6CA1131 /* PBXContainerItemProxy */ = { + C2A1695E336A6C2B91B965F6F79808BC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 5112C7EBB0119AC3BA1E726F52B37099; - remoteInfo = ValueCoding; + remoteGlobalIDString = 23A7293FBB783111F02B04F92721B69F; + remoteInfo = Result; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 0216247E5703DEFCB395822BEDEDB978 /* SwiftyJSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftyJSON-umbrella.h"; sourceTree = ""; }; + 0B22516CBC90CD5563F339D7D2D36CEB /* NSDecimalExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NSDecimalExtensions.swift; sourceTree = ""; }; 0DA8BD07E1098E205AF45D501594137C /* Result.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Result.modulemap; sourceTree = ""; }; - 196613FD4A9A760DD899B3999B10DE39 /* Currency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Currency.swift; sourceTree = ""; }; 1DADDD5C59FCA27235ACA32605BD1527 /* SwiftyJSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftyJSON-prefix.pch"; sourceTree = ""; }; - 212F2F7938CA183DECE52229884F8877 /* NSDecimalNumberExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NSDecimalNumberExtensions.swift; sourceTree = ""; }; + 1E9BC048FABEEEF99AB0BC46166AAC88 /* Autogenerated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Autogenerated.swift; sourceTree = ""; }; + 2688CBE6732BE29EFC1AB90D9C90FB7C /* OpenExchangeRates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = OpenExchangeRates.swift; sourceTree = ""; }; 269178DAB03BE95581C9933E5AD7BA5E /* Result.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Result.xcconfig; sourceTree = ""; }; - 28A4E605F118FDFF037ACD0C2F7FA3CD /* Yahoo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Yahoo.swift; sourceTree = ""; }; + 2F606D7587EF018F692AD17993DB7FC2 /* NSDecimalNumberExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NSDecimalNumberExtensions.swift; sourceTree = ""; }; + 3946E597A9D0AC3D75CAFD24BDAFD80E /* Money-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Money-prefix.pch"; sourceTree = ""; }; 3D3CEE659D9C1D3DEA521E896D331964 /* Pods-Custom Money-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Custom Money-umbrella.h"; sourceTree = ""; }; 3D699C1DA947CA5DBF82BE8927112AC0 /* ValueCoding.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = ValueCoding.modulemap; sourceTree = ""; }; 3F972EB6AED7000E61962C751DD7165D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 4AB0701B627076DB30830590329556A7 /* Money.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Money.modulemap; sourceTree = ""; }; - 4B01F2F57312E8852B8AAE2F384F620E /* Money-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Money-dummy.m"; sourceTree = ""; }; + 421293E5BE5A4D53D3EFD8B0D85E6C5A /* Support.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Support.swift; sourceTree = ""; }; 4C1460F12F695C031F6228E5D1C63C9F /* SwiftyJSON.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftyJSON.xcconfig; sourceTree = ""; }; 4F003A917BF6D1C4FBA4D94B06C30179 /* ResultType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResultType.swift; path = Result/ResultType.swift; sourceTree = ""; }; 50DFB978AB699248C726E034F1B3B42F /* ValueCoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ValueCoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 597CFBA87C75BE144B401FCC1EC5C927 /* NSDecimalExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NSDecimalExtensions.swift; sourceTree = ""; }; 5C29D8E4CA9E4CF9452CBCB9F8D56071 /* ValueCoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ValueCoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6555ECBB6D5CDDE1EA197618BD3509AD /* Support.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Support.swift; sourceTree = ""; }; 65E593BAC0D422045A94607A9C0A277E /* ValueCoding-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ValueCoding-umbrella.h"; sourceTree = ""; }; + 6668142B4A7F7A5DE42435220C510B8F /* Money.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Money.xcconfig; sourceTree = ""; }; + 6C22C68F5162837507ABB2E5CBA7243A /* Money-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Money-dummy.m"; sourceTree = ""; }; 71224125016483CBA4B84EA93DFD15CB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 7493F7F104BA60971A5E0230D9A9DAFC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 765CD792203F037EA7D0D97B135C395A /* ValueCoding.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ValueCoding.xcconfig; sourceTree = ""; }; 77FD247247D6D3CDBF638A9DB0EBDB4E /* SwiftyJSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftyJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7D56F281EDF6E7A4ED5627141F4E4DA2 /* Pods_Custom_Money.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Custom_Money.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 838F4AEA7BF1F57F0BE06B347D822D97 /* OpenExchangeRates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = OpenExchangeRates.swift; sourceTree = ""; }; - 87218D77D4395E00D6D9170F8AFF291B /* Bitcoin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bitcoin.swift; sourceTree = ""; }; + 83480F8F94E599798D9FFD36B467F76C /* Money.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Money.modulemap; sourceTree = ""; }; + 8689B0915191F6FC3B6A0628A6CB5D71 /* Money-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Money-umbrella.h"; sourceTree = ""; }; 8912AF1B024C1949E8DB3ECC403C4AE2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 8D811F4EED15D28415AF31F21F637295 /* Decimal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Decimal.swift; sourceTree = ""; }; - 91C4C71A43800346A8BACEA8E5B05DA5 /* Money-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Money-umbrella.h"; sourceTree = ""; }; + 8D643686085217B859B62EB64AE65079 /* FX.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FX.swift; sourceTree = ""; }; 94291E74B2ABBA056AD28AD1873DD8E3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 946FC5A04C491594712C2DB0468A8E59 /* Pods-Custom Money-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Custom Money-frameworks.sh"; sourceTree = ""; }; 9600516FB0E389F99DD6A409A89CA451 /* Pods-Custom Money-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Custom Money-dummy.m"; sourceTree = ""; }; 9678D4111A5AF8A6BB307124E11DCA92 /* Pods-Custom Money-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Custom Money-resources.sh"; sourceTree = ""; }; - 9E93EF565FBC64DCCA9029202BF573DE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 98BFC35404280D2F4A945B4AB90E6A32 /* Bitcoin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bitcoin.swift; sourceTree = ""; }; 9F8525B17F44112BA10D136F7F6C4089 /* ValueCoding-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ValueCoding-prefix.pch"; sourceTree = ""; }; A26E7BC45299526E4063BB4C61816580 /* Money.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Money.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A6DD5137FE8F22C2424D946F7E8D8D68 /* Pods-Custom Money-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Custom Money-acknowledgements.markdown"; sourceTree = ""; }; + B1F3AC336A2B14A1E454CFA3053A3446 /* Yahoo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Yahoo.swift; sourceTree = ""; }; + B4299D0CBF7A4E89A05E352987824427 /* DecimalNumberType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DecimalNumberType.swift; sourceTree = ""; }; B54A2AA14A7640E4A9B85F662D37A7D6 /* SwiftyJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = SwiftyJSON.modulemap; sourceTree = ""; }; B5E95FBF4C047EA6401BB7B12E42A8B7 /* ValueCoding-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ValueCoding-dummy.m"; sourceTree = ""; }; - B5EEF7A612BFA3D083C868A79762FB39 /* Money.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Money.swift; sourceTree = ""; }; - B8EEB490E417287676508AF49225E2B9 /* Autogenerated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Autogenerated.swift; sourceTree = ""; }; + B7DED3DF92386E03A6F560446322575E /* ApplePay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ApplePay.swift; sourceTree = ""; }; BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; C31FCA3CC32B1FFB7E577A3FD7C8BDC8 /* SwiftyJSON.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftyJSON.swift; path = Source/SwiftyJSON.swift; sourceTree = ""; }; C3461681C9E35896A154A3D8722352D1 /* Pods-Custom Money-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Custom Money-acknowledgements.plist"; sourceTree = ""; }; - C4B98152CC246208D533CBEB9CD23E8C /* Money-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Money-prefix.pch"; sourceTree = ""; }; + C4D79982E052F868FEAD4C6B411A43AD /* Money.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Money.swift; sourceTree = ""; }; C6AD9E331A620215773EDAE3D38920CB /* Pods-Custom Money.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Custom Money.release.xcconfig"; sourceTree = ""; }; - C6E8271D7B956774CA6CD37674C3999C /* DecimalNumberType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DecimalNumberType.swift; sourceTree = ""; }; + CA0150BA63C11CE658A19419D5BA0242 /* Decimal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Decimal.swift; sourceTree = ""; }; CCB9149D7C1AAA968AE461BDB9D1EEE8 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Result/Result.swift; sourceTree = ""; }; - D0F97F33A29F47BC32D7EBD2E18FAB2D /* Money.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Money.xcconfig; sourceTree = ""; }; D1FC653D131B20022B75023F33F250B9 /* Result.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Result.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D3F2B752C29D13FEC643AB1DFAD68B3E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D5181C8B9D1105F7243EBF4BDFDA56F8 /* Result-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Result-prefix.pch"; sourceTree = ""; }; D619B7641BF35CCD0B69F64DE1F3B98A /* Result.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Result.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D8F2976F6779F80CE007235A83876CE7 /* Result-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Result-dummy.m"; sourceTree = ""; }; + DAC6FFF0A1B09876AD5FBF28732DEEF9 /* Currency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Currency.swift; sourceTree = ""; }; DC0E8FE128B75E4AF4C971D16E94076E /* SwiftyJSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftyJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DF6284F39323D79B75BEEB8C366DE87C /* Pods-Custom Money.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Custom Money.debug.xcconfig"; sourceTree = ""; }; E2CDFCF407B3970A3F2FD3C19CCA4CE7 /* SwiftyJSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftyJSON-dummy.m"; sourceTree = ""; }; ED5BC5B78EBB608AE95556AC64F2F724 /* ValueCoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ValueCoding.swift; path = ValueCoding/ValueCoding.swift; sourceTree = ""; }; - EFF73AD3A7CF0FBE9BC94AEAC37858DD /* FX.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FX.swift; sourceTree = ""; }; F158272DDE3E68231F6FE2A3DEB56C4E /* Result-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Result-umbrella.h"; sourceTree = ""; }; F50C4C662DD8A2616FF07C3827D2AAC0 /* Pods-Custom Money.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-Custom Money.modulemap"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 063817B9347F8D64E119A7E71C814B32 /* Frameworks */ = { + 1C6CB977C8427C2DD9292CCC7B862340 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A235DAAECF32771AAA2A866446349A80 /* Foundation.framework in Frameworks */, + CC5136509641EA8530A96E91EA4EE142 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2E34BE03E627006D15ADEA6C163BA5D0 /* Frameworks */ = { + 4716E670998219B6B6EB4A7AB3211D1C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F485847EBE24151C05EE62DCE7204EAF /* Foundation.framework in Frameworks */, + 35575A63DB40EB8EC8BFD8189093A5DB /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4716E670998219B6B6EB4A7AB3211D1C /* Frameworks */ = { + 4E63CDC2DF3B55480B8EB8C922BC8D2C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 35575A63DB40EB8EC8BFD8189093A5DB /* Foundation.framework in Frameworks */, + E3BCFF79F7FA73444656346BFE183DFB /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - A973EBD95D75EA357A1572FC46D8517C /* Frameworks */ = { + 7928477D0E27DA94424A3FF372E41D05 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4F31C9D988EDAA919718FC3BD4CDD785 /* Foundation.framework in Frameworks */, - 31E645E979F3A5B089FCD8DEC7A3536E /* Result.framework in Frameworks */, - EDA2FDCE4DBBD0C20B3C52525812F335 /* SwiftyJSON.framework in Frameworks */, - C664644B24E321B0A4A8568F929E69D8 /* ValueCoding.framework in Frameworks */, + A7F546F1578C13FC4E669EA84D9A143A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - EA5D97503478433CA914EEEB041FB4A0 /* Frameworks */ = { + D33B3238A09F0DE15B806E36D744545D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 479158A06CDB3BB92C679F966E9D9E9E /* Foundation.framework in Frameworks */, + CF0D7CC11E07DB9E560288780B090008 /* Foundation.framework in Frameworks */, + 159F21B1178289B764BCD3FE003A0885 /* Result.framework in Frameworks */, + CA78A8D38649B0911E61216F1024421C /* SwiftyJSON.framework in Frameworks */, + 01CDC2329E573772C61437C6D9E424C6 /* ValueCoding.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -242,38 +244,17 @@ name = Pods; sourceTree = ""; }; - 5CEE22C08342643D21F896926A007B93 /* Money */ = { + 7C19DCF690047371AAE3833667886182 /* FX */ = { isa = PBXGroup; children = ( - 8AA0F47E58ABAF246515E19B4535F66B /* Money */, - 88ECEAF82072CCAC7F028BBF483E773D /* Support Files */, - ); - name = Money; - path = ../../..; - sourceTree = ""; - }; - 6C7887F173D1B299B79CDAABD19D2704 /* FX */ = { - isa = PBXGroup; - children = ( - 87218D77D4395E00D6D9170F8AFF291B /* Bitcoin.swift */, - EFF73AD3A7CF0FBE9BC94AEAC37858DD /* FX.swift */, - 838F4AEA7BF1F57F0BE06B347D822D97 /* OpenExchangeRates.swift */, - 28A4E605F118FDFF037ACD0C2F7FA3CD /* Yahoo.swift */, + 98BFC35404280D2F4A945B4AB90E6A32 /* Bitcoin.swift */, + 8D643686085217B859B62EB64AE65079 /* FX.swift */, + 2688CBE6732BE29EFC1AB90D9C90FB7C /* OpenExchangeRates.swift */, + B1F3AC336A2B14A1E454CFA3053A3446 /* Yahoo.swift */, ); path = FX; sourceTree = ""; }; - 7B3DE46407420792449B7AADF7768E63 /* Decimal */ = { - isa = PBXGroup; - children = ( - 8D811F4EED15D28415AF31F21F637295 /* Decimal.swift */, - C6E8271D7B956774CA6CD37674C3999C /* DecimalNumberType.swift */, - 597CFBA87C75BE144B401FCC1EC5C927 /* NSDecimalExtensions.swift */, - 212F2F7938CA183DECE52229884F8877 /* NSDecimalNumberExtensions.swift */, - ); - path = Decimal; - sourceTree = ""; - }; 7CD8DE1FA9C24B39D42EAA6BE52E7E30 /* Products */ = { isa = PBXGroup; children = ( @@ -326,33 +307,49 @@ path = "../Target Support Files/ValueCoding"; sourceTree = ""; }; - 88ECEAF82072CCAC7F028BBF483E773D /* Support Files */ = { + 8EECE84127C724CBF2DA747FDAD1ECBE /* Money */ = { isa = PBXGroup; children = ( - 9E93EF565FBC64DCCA9029202BF573DE /* Info.plist */, - 4AB0701B627076DB30830590329556A7 /* Money.modulemap */, - D0F97F33A29F47BC32D7EBD2E18FAB2D /* Money.xcconfig */, - 4B01F2F57312E8852B8AAE2F384F620E /* Money-dummy.m */, - C4B98152CC246208D533CBEB9CD23E8C /* Money-prefix.pch */, - 91C4C71A43800346A8BACEA8E5B05DA5 /* Money-umbrella.h */, + A596F2F01D5F21C44F61508BED008A83 /* Money */, + EAA430956243F34196DE176B903AA873 /* Support Files */, ); - name = "Support Files"; - path = "Examples/Custom Money/Pods/Target Support Files/Money"; + name = Money; + path = ../../..; sourceTree = ""; }; - 8AA0F47E58ABAF246515E19B4535F66B /* Money */ = { + 9D6C6B5B1D50EA6E1644D2E408D8EDE5 /* Decimal */ = { isa = PBXGroup; children = ( - B8EEB490E417287676508AF49225E2B9 /* Autogenerated.swift */, - 196613FD4A9A760DD899B3999B10DE39 /* Currency.swift */, - B5EEF7A612BFA3D083C868A79762FB39 /* Money.swift */, - 6555ECBB6D5CDDE1EA197618BD3509AD /* Support.swift */, - 7B3DE46407420792449B7AADF7768E63 /* Decimal */, - 6C7887F173D1B299B79CDAABD19D2704 /* FX */, + CA0150BA63C11CE658A19419D5BA0242 /* Decimal.swift */, + B4299D0CBF7A4E89A05E352987824427 /* DecimalNumberType.swift */, + 0B22516CBC90CD5563F339D7D2D36CEB /* NSDecimalExtensions.swift */, + 2F606D7587EF018F692AD17993DB7FC2 /* NSDecimalNumberExtensions.swift */, + ); + path = Decimal; + sourceTree = ""; + }; + A596F2F01D5F21C44F61508BED008A83 /* Money */ = { + isa = PBXGroup; + children = ( + DB2700AD42E15CFDDE436C7EF1151C17 /* iOS */, + B33EF8AC085A9FA1394A0362E8A499C8 /* Shared */, ); path = Money; sourceTree = ""; }; + B33EF8AC085A9FA1394A0362E8A499C8 /* Shared */ = { + isa = PBXGroup; + children = ( + 1E9BC048FABEEEF99AB0BC46166AAC88 /* Autogenerated.swift */, + DAC6FFF0A1B09876AD5FBF28732DEEF9 /* Currency.swift */, + C4D79982E052F868FEAD4C6B411A43AD /* Money.swift */, + 421293E5BE5A4D53D3EFD8B0D85E6C5A /* Support.swift */, + 9D6C6B5B1D50EA6E1644D2E408D8EDE5 /* Decimal */, + 7C19DCF690047371AAE3833667886182 /* FX */, + ); + path = Shared; + sourceTree = ""; + }; B5C0E67CF8FBCF29AA3D76C4CEADF315 /* Result */ = { isa = PBXGroup; children = ( @@ -377,7 +374,7 @@ CAC5A6648E74B35CD2E9377F99CF2FF6 /* Development Pods */ = { isa = PBXGroup; children = ( - 5CEE22C08342643D21F896926A007B93 /* Money */, + 8EECE84127C724CBF2DA747FDAD1ECBE /* Money */, ); name = "Development Pods"; sourceTree = ""; @@ -398,6 +395,28 @@ name = iOS; sourceTree = ""; }; + DB2700AD42E15CFDDE436C7EF1151C17 /* iOS */ = { + isa = PBXGroup; + children = ( + B7DED3DF92386E03A6F560446322575E /* ApplePay.swift */, + ); + path = iOS; + sourceTree = ""; + }; + EAA430956243F34196DE176B903AA873 /* Support Files */ = { + isa = PBXGroup; + children = ( + 7493F7F104BA60971A5E0230D9A9DAFC /* Info.plist */, + 83480F8F94E599798D9FFD36B467F76C /* Money.modulemap */, + 6668142B4A7F7A5DE42435220C510B8F /* Money.xcconfig */, + 6C22C68F5162837507ABB2E5CBA7243A /* Money-dummy.m */, + 3946E597A9D0AC3D75CAFD24BDAFD80E /* Money-prefix.pch */, + 8689B0915191F6FC3B6A0628A6CB5D71 /* Money-umbrella.h */, + ); + name = "Support Files"; + path = "Examples/Custom Money/Pods/Target Support Files/Money"; + sourceTree = ""; + }; ED084EEB9ACE805519B38840A5FB08F9 /* SwiftyJSON */ = { isa = PBXGroup; children = ( @@ -424,139 +443,139 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 121AD303FE4E01089C531A97FD809397 /* Headers */ = { + 0FEE4C6970CF21141A8C84FDD7AD1C3C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B97D98FFAAA3C8A163AFDA70C5AAF75C /* SwiftyJSON-umbrella.h in Headers */, + 102C7228A7DBF85C365042333B510AAD /* SwiftyJSON-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 22E1441E18750994A84E7B0403907CBC /* Headers */ = { + 2EA34AA3BAC054D6E4642611EA11CCAC /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 80810DBE1DF76ECAAABA97CC92B7FC97 /* ValueCoding-umbrella.h in Headers */, + 39CBED50C7B06A334792D15FB072BAF2 /* Result-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 76EC7561AE8C1FCEC260E5BA53821228 /* Headers */ = { + 8269C693AE9B0FAA04EE2300F9720E28 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 554CF5A8F13DEE08C7DB61AF96C42E2A /* Result-umbrella.h in Headers */, + 09F8C9409DF28C51561C0D4BCBDB7426 /* Pods-Custom Money-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 77C659239C7FD869381366BA007B3567 /* Headers */ = { + 916A431FAF311C9A7FBBD1E61307F9A5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0217EDAB41BE6D83A68B4A2339BBA762 /* Money-umbrella.h in Headers */, + 46076C520F75FE0CC485879CA5FA01A4 /* ValueCoding-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8269C693AE9B0FAA04EE2300F9720E28 /* Headers */ = { + BB19B4B2D4F1CA7B3070B06759A30DA5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 09F8C9409DF28C51561C0D4BCBDB7426 /* Pods-Custom Money-umbrella.h in Headers */, + 9F788DE02454F4895B117B1FA84DEA91 /* Money-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 335D5C3164D7294DB478331EF58A0C4F /* Result */ = { + 1CC232158DD850F851750D630A1619A0 /* Money */ = { isa = PBXNativeTarget; - buildConfigurationList = 81F73A5B96E10FC3CD393C5AF6B23B20 /* Build configuration list for PBXNativeTarget "Result" */; + buildConfigurationList = 1388689AACE2A14DA17A521B69C583E6 /* Build configuration list for PBXNativeTarget "Money" */; buildPhases = ( - 5B6AFD100B8B127EAAA9008096C2259C /* Sources */, - 2E34BE03E627006D15ADEA6C163BA5D0 /* Frameworks */, - 76EC7561AE8C1FCEC260E5BA53821228 /* Headers */, + 2099C4B3B11A468234DE1E5073510688 /* Sources */, + D33B3238A09F0DE15B806E36D744545D /* Frameworks */, + BB19B4B2D4F1CA7B3070B06759A30DA5 /* Headers */, ); buildRules = ( ); dependencies = ( + 32935F77C460566C83EE30C50809F2F8 /* PBXTargetDependency */, + 7D4CA1F5E100235C4ED1197E6395406F /* PBXTargetDependency */, + D07CE80CD02E5C531AEAA644FC59C0B5 /* PBXTargetDependency */, ); - name = Result; - productName = Result; - productReference = D619B7641BF35CCD0B69F64DE1F3B98A /* Result.framework */; + name = Money; + productName = Money; + productReference = A26E7BC45299526E4063BB4C61816580 /* Money.framework */; productType = "com.apple.product-type.framework"; }; - 5112C7EBB0119AC3BA1E726F52B37099 /* ValueCoding */ = { + 23A7293FBB783111F02B04F92721B69F /* Result */ = { isa = PBXNativeTarget; - buildConfigurationList = 2F3A813139924F1A5E5B2011370475B6 /* Build configuration list for PBXNativeTarget "ValueCoding" */; + buildConfigurationList = 081A3E84FFCCA0D120DA040D7C0642BB /* Build configuration list for PBXNativeTarget "Result" */; buildPhases = ( - FC98ED70CA8B7B1AB9B1B0C865B55999 /* Sources */, - 063817B9347F8D64E119A7E71C814B32 /* Frameworks */, - 22E1441E18750994A84E7B0403907CBC /* Headers */, + D12A0EA6A0161FF6E494EB4EA0A5D7AF /* Sources */, + 1C6CB977C8427C2DD9292CCC7B862340 /* Frameworks */, + 2EA34AA3BAC054D6E4642611EA11CCAC /* Headers */, ); buildRules = ( ); dependencies = ( ); - name = ValueCoding; - productName = ValueCoding; - productReference = 50DFB978AB699248C726E034F1B3B42F /* ValueCoding.framework */; + name = Result; + productName = Result; + productReference = D619B7641BF35CCD0B69F64DE1F3B98A /* Result.framework */; productType = "com.apple.product-type.framework"; }; - B63DBF20C97F25D4F844CB4BDFE4527A /* Pods-Custom Money */ = { + 4BC85735EDC74D4318B525FA45559B2F /* ValueCoding */ = { isa = PBXNativeTarget; - buildConfigurationList = 37A41A6B9185E59239BFB81D6353E1CF /* Build configuration list for PBXNativeTarget "Pods-Custom Money" */; + buildConfigurationList = 4323EA468273039AAF7A09F78393BBD8 /* Build configuration list for PBXNativeTarget "ValueCoding" */; buildPhases = ( - 9939AE9FAD1EEC366F8358A7D92606F6 /* Sources */, - 4716E670998219B6B6EB4A7AB3211D1C /* Frameworks */, - 8269C693AE9B0FAA04EE2300F9720E28 /* Headers */, + E2CDC2BAEBF7D5294E87D15A8B9B6484 /* Sources */, + 7928477D0E27DA94424A3FF372E41D05 /* Frameworks */, + 916A431FAF311C9A7FBBD1E61307F9A5 /* Headers */, ); buildRules = ( ); dependencies = ( - 6A5AB7BA465846DD13A7288647AE3D64 /* PBXTargetDependency */, - 5296D6953C077C85AFCB563124192C7D /* PBXTargetDependency */, - 14EE644027DDF28E4652404B99E3BE47 /* PBXTargetDependency */, - DBB46D880EEEB766A474B6074D4B98DF /* PBXTargetDependency */, ); - name = "Pods-Custom Money"; - productName = "Pods-Custom Money"; - productReference = 7D56F281EDF6E7A4ED5627141F4E4DA2 /* Pods_Custom_Money.framework */; + name = ValueCoding; + productName = ValueCoding; + productReference = 50DFB978AB699248C726E034F1B3B42F /* ValueCoding.framework */; productType = "com.apple.product-type.framework"; }; - DCEA67B24DDEA58F2608D2A7E29EC0AE /* Money */ = { + 8E3382292E423E66A74FE3955E9E2C56 /* SwiftyJSON */ = { isa = PBXNativeTarget; - buildConfigurationList = 5CADF911B07C597448EFF422ABDB3FDE /* Build configuration list for PBXNativeTarget "Money" */; + buildConfigurationList = 4D982EA60D3570F60FB04AE8CC7B8895 /* Build configuration list for PBXNativeTarget "SwiftyJSON" */; buildPhases = ( - C8934663EB4AE0B4929444533C9EF220 /* Sources */, - A973EBD95D75EA357A1572FC46D8517C /* Frameworks */, - 77C659239C7FD869381366BA007B3567 /* Headers */, + 110E1CABA46BB17D6EFDE17FD449ACE3 /* Sources */, + 4E63CDC2DF3B55480B8EB8C922BC8D2C /* Frameworks */, + 0FEE4C6970CF21141A8C84FDD7AD1C3C /* Headers */, ); buildRules = ( ); dependencies = ( - C8DCBE089958260D159D5C44647F41CF /* PBXTargetDependency */, - D407F2C774D39C8178BBAB3740391322 /* PBXTargetDependency */, - D89098397CC9BDCF51043D6F04F96FF9 /* PBXTargetDependency */, ); - name = Money; - productName = Money; - productReference = A26E7BC45299526E4063BB4C61816580 /* Money.framework */; + name = SwiftyJSON; + productName = SwiftyJSON; + productReference = DC0E8FE128B75E4AF4C971D16E94076E /* SwiftyJSON.framework */; productType = "com.apple.product-type.framework"; }; - E1BC6514E856EA889BE33605FA7C661A /* SwiftyJSON */ = { + B63DBF20C97F25D4F844CB4BDFE4527A /* Pods-Custom Money */ = { isa = PBXNativeTarget; - buildConfigurationList = FDDDB1E35279A6D3923344153846DF57 /* Build configuration list for PBXNativeTarget "SwiftyJSON" */; + buildConfigurationList = 37A41A6B9185E59239BFB81D6353E1CF /* Build configuration list for PBXNativeTarget "Pods-Custom Money" */; buildPhases = ( - 8928033D360B3AD2E4332DBAE9791D67 /* Sources */, - EA5D97503478433CA914EEEB041FB4A0 /* Frameworks */, - 121AD303FE4E01089C531A97FD809397 /* Headers */, + 9939AE9FAD1EEC366F8358A7D92606F6 /* Sources */, + 4716E670998219B6B6EB4A7AB3211D1C /* Frameworks */, + 8269C693AE9B0FAA04EE2300F9720E28 /* Headers */, ); buildRules = ( ); dependencies = ( + 6A5AB7BA465846DD13A7288647AE3D64 /* PBXTargetDependency */, + 5296D6953C077C85AFCB563124192C7D /* PBXTargetDependency */, + 14EE644027DDF28E4652404B99E3BE47 /* PBXTargetDependency */, + DBB46D880EEEB766A474B6074D4B98DF /* PBXTargetDependency */, ); - name = SwiftyJSON; - productName = SwiftyJSON; - productReference = DC0E8FE128B75E4AF4C971D16E94076E /* SwiftyJSON.framework */; + name = "Pods-Custom Money"; + productName = "Pods-Custom Money"; + productReference = 7D56F281EDF6E7A4ED5627141F4E4DA2 /* Pods_Custom_Money.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -566,7 +585,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0700; + LastUpgradeCheck = 0710; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -580,32 +599,43 @@ projectDirPath = ""; projectRoot = ""; targets = ( - DCEA67B24DDEA58F2608D2A7E29EC0AE /* Money */, + 1CC232158DD850F851750D630A1619A0 /* Money */, B63DBF20C97F25D4F844CB4BDFE4527A /* Pods-Custom Money */, - 335D5C3164D7294DB478331EF58A0C4F /* Result */, - E1BC6514E856EA889BE33605FA7C661A /* SwiftyJSON */, - 5112C7EBB0119AC3BA1E726F52B37099 /* ValueCoding */, + 23A7293FBB783111F02B04F92721B69F /* Result */, + 8E3382292E423E66A74FE3955E9E2C56 /* SwiftyJSON */, + 4BC85735EDC74D4318B525FA45559B2F /* ValueCoding */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 5B6AFD100B8B127EAAA9008096C2259C /* Sources */ = { + 110E1CABA46BB17D6EFDE17FD449ACE3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - F796D5F5B55CE16B1311C41299E86D0B /* Result-dummy.m in Sources */, - 435ED888CA386BA222E288B1CC8574F5 /* Result.swift in Sources */, - 84964756F22AEE07130A328DC0143EFA /* ResultType.swift in Sources */, + E44DAE377F46DED2E5F35ECCF2B20382 /* SwiftyJSON-dummy.m in Sources */, + D068F9F5C541D23AAC5A8A8326B0E0EA /* SwiftyJSON.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8928033D360B3AD2E4332DBAE9791D67 /* Sources */ = { + 2099C4B3B11A468234DE1E5073510688 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 16CC6804DA661658124C44577F2953E4 /* SwiftyJSON-dummy.m in Sources */, - 5637E947D3756585ECF976E01D38CC8A /* SwiftyJSON.swift in Sources */, + CB3F617203CDA93497D7B57E9CA36531 /* ApplePay.swift in Sources */, + 043D5BD57A25AE71536828CA8DA7FF01 /* Autogenerated.swift in Sources */, + 36F55053B0603A0FFDE8B95F9C0DE60D /* Bitcoin.swift in Sources */, + 36E93D1BBF5A6FCF286387141DD6A1A3 /* Currency.swift in Sources */, + 3486EA9DA434ABCFB425595607F7CF60 /* Decimal.swift in Sources */, + 050CCBF1EA6669EBB882EA43B6519150 /* DecimalNumberType.swift in Sources */, + 4EBC5C5FE22229EDD33BDED9F754F600 /* FX.swift in Sources */, + 9A7EF57674C8EC22B7D65268D0A4DE03 /* Money-dummy.m in Sources */, + 9C6A17DF519A656ED0784EE10CC4CB6E /* Money.swift in Sources */, + 1BE369EA4E4AA3AC22FFEA752BAFE11A /* NSDecimalExtensions.swift in Sources */, + 57E91E64CD037A256E4699E0CA7F175D /* NSDecimalNumberExtensions.swift in Sources */, + 7F9E59EE6FF0200ACA36025629303B3A /* OpenExchangeRates.swift in Sources */, + EDA7178EE56DA34D5AC145BE581FD88C /* Support.swift in Sources */, + B689C6A1DE32D8E2CBC8204AC806B3B4 /* Yahoo.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -617,32 +647,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C8934663EB4AE0B4929444533C9EF220 /* Sources */ = { + D12A0EA6A0161FF6E494EB4EA0A5D7AF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 84E7501479AACC41E67BB26817D9639D /* Autogenerated.swift in Sources */, - 7E586FC96883817FC458B25FA91BD2CE /* Bitcoin.swift in Sources */, - 1F6A8EBF7DF1DD625F8CCDB7AED2F528 /* Currency.swift in Sources */, - F0A058EFFE6ECEE169C2B53704C78963 /* Decimal.swift in Sources */, - F896F74FA7879D4F61DB699A27BF844D /* DecimalNumberType.swift in Sources */, - 7FAE343617CB65AE9CB6BF5CFE4F1134 /* FX.swift in Sources */, - BFD28C75A55F161255F8F1C263D779F7 /* Money-dummy.m in Sources */, - 4F45ED652CD2AAFDE8AEE11F158045B5 /* Money.swift in Sources */, - 685E5FA73478973B4D2184A91E4E7FF8 /* NSDecimalExtensions.swift in Sources */, - ECB837E114BC2BC4BBE280CE6CAE9BF4 /* NSDecimalNumberExtensions.swift in Sources */, - 8752AAACF89C0D05BAFAC976E18B43B5 /* OpenExchangeRates.swift in Sources */, - CD10415D334D475BA55049F7F5027125 /* Support.swift in Sources */, - 4C88E376338108DCA576487003CFC800 /* Yahoo.swift in Sources */, + 454630A1C320EC2DB1FF6E8757BFAB9D /* Result-dummy.m in Sources */, + 071010808041919584FA4C48CF0EDDF8 /* Result.swift in Sources */, + 6970AE86E02D00EF04C76F2BFE64FC8E /* ResultType.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - FC98ED70CA8B7B1AB9B1B0C865B55999 /* Sources */ = { + E2CDC2BAEBF7D5294E87D15A8B9B6484 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - ADF9BB52327C5FFC7A934CDA0EE843D9 /* ValueCoding-dummy.m in Sources */, - 92290889D67198C19057765E18109214 /* ValueCoding.swift in Sources */, + 18B920DEB8C03D96876FED863C3F067D /* ValueCoding-dummy.m in Sources */, + B0A5F205F967B27C6FDF03220B3634BB /* ValueCoding.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -652,48 +672,76 @@ 14EE644027DDF28E4652404B99E3BE47 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SwiftyJSON; - target = E1BC6514E856EA889BE33605FA7C661A /* SwiftyJSON */; + target = 8E3382292E423E66A74FE3955E9E2C56 /* SwiftyJSON */; targetProxy = 36023380F037B6AB8D4492DCA3A27CD5 /* PBXContainerItemProxy */; }; + 32935F77C460566C83EE30C50809F2F8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Result; + target = 23A7293FBB783111F02B04F92721B69F /* Result */; + targetProxy = C2A1695E336A6C2B91B965F6F79808BC /* PBXContainerItemProxy */; + }; 5296D6953C077C85AFCB563124192C7D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Result; - target = 335D5C3164D7294DB478331EF58A0C4F /* Result */; + target = 23A7293FBB783111F02B04F92721B69F /* Result */; targetProxy = 41F272EA7F75CA2CEBC8E35579A501C9 /* PBXContainerItemProxy */; }; 6A5AB7BA465846DD13A7288647AE3D64 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Money; - target = DCEA67B24DDEA58F2608D2A7E29EC0AE /* Money */; + target = 1CC232158DD850F851750D630A1619A0 /* Money */; targetProxy = 1DFE2A02B5C6BDFE88F8CA3DFB0FC286 /* PBXContainerItemProxy */; }; - C8DCBE089958260D159D5C44647F41CF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Result; - target = 335D5C3164D7294DB478331EF58A0C4F /* Result */; - targetProxy = 20E2555ABC7481F293A5C37138092ED3 /* PBXContainerItemProxy */; - }; - D407F2C774D39C8178BBAB3740391322 /* PBXTargetDependency */ = { + 7D4CA1F5E100235C4ED1197E6395406F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SwiftyJSON; - target = E1BC6514E856EA889BE33605FA7C661A /* SwiftyJSON */; - targetProxy = 5C0A58B226E00A3E1A7328A37E81607F /* PBXContainerItemProxy */; + target = 8E3382292E423E66A74FE3955E9E2C56 /* SwiftyJSON */; + targetProxy = 2E4D0664D7A4441731CDD1F17F0A0717 /* PBXContainerItemProxy */; }; - D89098397CC9BDCF51043D6F04F96FF9 /* PBXTargetDependency */ = { + D07CE80CD02E5C531AEAA644FC59C0B5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = ValueCoding; - target = 5112C7EBB0119AC3BA1E726F52B37099 /* ValueCoding */; - targetProxy = 39651D11DAC97EA2B23D906D0DE433D1 /* PBXContainerItemProxy */; + target = 4BC85735EDC74D4318B525FA45559B2F /* ValueCoding */; + targetProxy = 016D73A97AF1E88DAC05D1442CBF12BD /* PBXContainerItemProxy */; }; DBB46D880EEEB766A474B6074D4B98DF /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = ValueCoding; - target = 5112C7EBB0119AC3BA1E726F52B37099 /* ValueCoding */; + target = 4BC85735EDC74D4318B525FA45559B2F /* ValueCoding */; targetProxy = A8D7D5C5D4B2B0DBEA7CD9A1C6CA1131 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 0D34E788556BF0117A9E393B729CD24D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6668142B4A7F7A5DE42435220C510B8F /* Money.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Money/Money-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Money/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Money/Money.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Money; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 1A5C3AB79FFAD473C53D2FF59AD706F0 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = DF6284F39323D79B75BEEB8C366DE87C /* Pods-Custom Money.debug.xcconfig */; @@ -715,6 +763,7 @@ OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Pods_Custom_Money; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -725,9 +774,9 @@ }; name = Debug; }; - 1E313C554CA678E5FBA9A8A9C495E979 /* Release */ = { + 5CCE459C2B148F060DEF089C2B8EF33E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 765CD792203F037EA7D0D97B135C395A /* ValueCoding.xcconfig */; + baseConfigurationReference = C6AD9E331A620215773EDAE3D38920CB /* Pods-Custom Money.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -736,14 +785,18 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/ValueCoding/ValueCoding-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ValueCoding/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-Custom Money/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/ValueCoding/ValueCoding.modulemap"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Custom Money/Pods-Custom Money.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = ValueCoding; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_Custom_Money; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -752,7 +805,7 @@ }; name = Release; }; - 229C78DF249EF56E40117D412B509267 /* Debug */ = { + 657B2FFE0B4CA9A09BCD2EAB206D9F5F /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 4C1460F12F695C031F6228E5D1C63C9F /* SwiftyJSON.xcconfig */; buildSettings = { @@ -770,6 +823,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = SwiftyJSON; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -780,9 +834,9 @@ }; name = Debug; }; - 5CCE459C2B148F060DEF089C2B8EF33E /* Release */ = { + 70C41D73A07F76803797C9F3F186CDB7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C6AD9E331A620215773EDAE3D38920CB /* Pods-Custom Money.release.xcconfig */; + baseConfigurationReference = 269178DAB03BE95581C9933E5AD7BA5E /* Result.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -791,17 +845,44 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - INFOPLIST_FILE = "Target Support Files/Pods-Custom Money/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Result/Result-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Result/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-Custom Money/Pods-Custom Money.modulemap"; + MODULEMAP_FILE = "Target Support Files/Result/Result.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Result; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 832DBAC21B8F1C674768DF3C0F927D1D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4C1460F12F695C031F6228E5D1C63C9F /* SwiftyJSON.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SwiftyJSON/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = Pods_Custom_Money; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = SwiftyJSON; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -810,7 +891,7 @@ }; name = Release; }; - 6D83889271DAA877F278D48348131D8F /* Debug */ = { + 96075CA15D96321DD896806DBD3CAF71 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 269178DAB03BE95581C9933E5AD7BA5E /* Result.xcconfig */; buildSettings = { @@ -827,20 +908,20 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/Result/Result.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Result; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - A9EE419C41A292FD5A5DA55A849AE598 /* Debug */ = { + A35C6C2EC69A39FE32D454EE4C141800 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 765CD792203F037EA7D0D97B135C395A /* ValueCoding.xcconfig */; + baseConfigurationReference = 6668142B4A7F7A5DE42435220C510B8F /* Money.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -849,14 +930,15 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/ValueCoding/ValueCoding-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ValueCoding/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Money/Money-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Money/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/ValueCoding/ValueCoding.modulemap"; + MODULEMAP_FILE = "Target Support Files/Money/Money.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = ValueCoding; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Money; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -884,6 +966,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -905,9 +988,9 @@ }; name = Debug; }; - CE64D1FCE295EEFA2910197082F6093A /* Debug */ = { + D42841C752D344FA300EDE4604BC87A1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F97F33A29F47BC32D7EBD2E18FAB2D /* Money.xcconfig */; + baseConfigurationReference = 765CD792203F037EA7D0D97B135C395A /* ValueCoding.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -916,14 +999,15 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Money/Money-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Money/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/ValueCoding/ValueCoding-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ValueCoding/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Money/Money.modulemap"; + MODULEMAP_FILE = "Target Support Files/ValueCoding/ValueCoding.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = Money; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = ValueCoding; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -933,60 +1017,6 @@ }; name = Debug; }; - D07B644BAB1ACA7BF4FE0B94D2AD6A1E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4C1460F12F695C031F6228E5D1C63C9F /* SwiftyJSON.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SwiftyJSON/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = SwiftyJSON; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D2CE3C2E7FAA5512165C714F952EEE9F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 269178DAB03BE95581C9933E5AD7BA5E /* Result.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Result/Result-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Result/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Result/Result.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Result; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; E43846B588E1892F3093F3B7082B6DFB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1021,9 +1051,9 @@ }; name = Release; }; - FE0E40BE653EF899426B04460F58B2B8 /* Release */ = { + E661B0513529A253CACF9BA0AE038BDD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F97F33A29F47BC32D7EBD2E18FAB2D /* Money.xcconfig */; + baseConfigurationReference = 765CD792203F037EA7D0D97B135C395A /* ValueCoding.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1032,14 +1062,15 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Money/Money-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Money/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/ValueCoding/ValueCoding-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ValueCoding/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Money/Money.modulemap"; + MODULEMAP_FILE = "Target Support Files/ValueCoding/ValueCoding.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Money; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = ValueCoding; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1051,56 +1082,56 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 081A3E84FFCCA0D120DA040D7C0642BB /* Build configuration list for PBXNativeTarget "Result" */ = { isa = XCConfigurationList; buildConfigurations = ( - C074F63C9EE7CB4D8C618390A32CEC35 /* Debug */, - E43846B588E1892F3093F3B7082B6DFB /* Release */, + 70C41D73A07F76803797C9F3F186CDB7 /* Debug */, + 96075CA15D96321DD896806DBD3CAF71 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2F3A813139924F1A5E5B2011370475B6 /* Build configuration list for PBXNativeTarget "ValueCoding" */ = { + 1388689AACE2A14DA17A521B69C583E6 /* Build configuration list for PBXNativeTarget "Money" */ = { isa = XCConfigurationList; buildConfigurations = ( - A9EE419C41A292FD5A5DA55A849AE598 /* Debug */, - 1E313C554CA678E5FBA9A8A9C495E979 /* Release */, + A35C6C2EC69A39FE32D454EE4C141800 /* Debug */, + 0D34E788556BF0117A9E393B729CD24D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 37A41A6B9185E59239BFB81D6353E1CF /* Build configuration list for PBXNativeTarget "Pods-Custom Money" */ = { + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1A5C3AB79FFAD473C53D2FF59AD706F0 /* Debug */, - 5CCE459C2B148F060DEF089C2B8EF33E /* Release */, + C074F63C9EE7CB4D8C618390A32CEC35 /* Debug */, + E43846B588E1892F3093F3B7082B6DFB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5CADF911B07C597448EFF422ABDB3FDE /* Build configuration list for PBXNativeTarget "Money" */ = { + 37A41A6B9185E59239BFB81D6353E1CF /* Build configuration list for PBXNativeTarget "Pods-Custom Money" */ = { isa = XCConfigurationList; buildConfigurations = ( - CE64D1FCE295EEFA2910197082F6093A /* Debug */, - FE0E40BE653EF899426B04460F58B2B8 /* Release */, + 1A5C3AB79FFAD473C53D2FF59AD706F0 /* Debug */, + 5CCE459C2B148F060DEF089C2B8EF33E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 81F73A5B96E10FC3CD393C5AF6B23B20 /* Build configuration list for PBXNativeTarget "Result" */ = { + 4323EA468273039AAF7A09F78393BBD8 /* Build configuration list for PBXNativeTarget "ValueCoding" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6D83889271DAA877F278D48348131D8F /* Debug */, - D2CE3C2E7FAA5512165C714F952EEE9F /* Release */, + D42841C752D344FA300EDE4604BC87A1 /* Debug */, + E661B0513529A253CACF9BA0AE038BDD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - FDDDB1E35279A6D3923344153846DF57 /* Build configuration list for PBXNativeTarget "SwiftyJSON" */ = { + 4D982EA60D3570F60FB04AE8CC7B8895 /* Build configuration list for PBXNativeTarget "SwiftyJSON" */ = { isa = XCConfigurationList; buildConfigurations = ( - 229C78DF249EF56E40117D412B509267 /* Debug */, - D07B644BAB1ACA7BF4FE0B94D2AD6A1E /* Release */, + 657B2FFE0B4CA9A09BCD2EAB206D9F5F /* Debug */, + 832DBAC21B8F1C674768DF3C0F927D1D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Examples/Custom Money/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Money.xcscheme b/Examples/Custom Money/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Money.xcscheme deleted file mode 100644 index a7d04d4..0000000 --- a/Examples/Custom Money/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Money.xcscheme +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/Custom Money/Pods/Target Support Files/Money/Info.plist b/Examples/Custom Money/Pods/Target Support Files/Money/Info.plist index 01903d7..d28b0f0 100644 --- a/Examples/Custom Money/Pods/Target Support Files/Money/Info.plist +++ b/Examples/Custom Money/Pods/Target Support Files/Money/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.1.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.2.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Examples/Custom Money/Pods/Target Support Files/Pods-Custom Money/Info.plist b/Examples/Custom Money/Pods/Target Support Files/Pods-Custom Money/Info.plist index 6974542..11db4b7 100644 --- a/Examples/Custom Money/Pods/Target Support Files/Pods-Custom Money/Info.plist +++ b/Examples/Custom Money/Pods/Target Support Files/Pods-Custom Money/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Examples/Custom Money/Pods/Target Support Files/Result/Info.plist b/Examples/Custom Money/Pods/Target Support Files/Result/Info.plist index 7b20907..b72a2b9 100644 --- a/Examples/Custom Money/Pods/Target Support Files/Result/Info.plist +++ b/Examples/Custom Money/Pods/Target Support Files/Result/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.6.0-beta.6 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.6.0-beta.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Examples/Custom Money/Pods/Target Support Files/SwiftyJSON/Info.plist b/Examples/Custom Money/Pods/Target Support Files/SwiftyJSON/Info.plist index a98a41a..20aa983 100644 --- a/Examples/Custom Money/Pods/Target Support Files/SwiftyJSON/Info.plist +++ b/Examples/Custom Money/Pods/Target Support Files/SwiftyJSON/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 2.3.1 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.3.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Examples/Custom Money/Pods/Target Support Files/ValueCoding/Info.plist b/Examples/Custom Money/Pods/Target Support Files/ValueCoding/Info.plist index 01903d7..e417ac3 100644 --- a/Examples/Custom Money/Pods/Target Support Files/ValueCoding/Info.plist +++ b/Examples/Custom Money/Pods/Target Support Files/ValueCoding/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.1.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.1.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Gemfile.lock b/Gemfile.lock index fe1c9d1..adb4302 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.4) + activesupport (4.2.5) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) @@ -13,7 +13,7 @@ GEM extlib (>= 0.9.15) multi_json (>= 1.0.0) babosa (1.0.2) - cert (1.2.0) + cert (1.2.2) fastlane_core (>= 0.19.0, < 1.0.0) spaceship (>= 0.6.0) claide (0.9.1) @@ -25,12 +25,12 @@ GEM colored highline (>= 1.7.1) security - deliver (1.5.0) + deliver (1.5.1) credentials_manager (>= 0.9.0) fastimage (~> 1.6.3) fastlane_core (>= 0.19.0, < 1.0.0) plist (~> 3.1.0) - spaceship (>= 0.13.0, <= 1.0.0) + spaceship (>= 0.14.0, <= 1.0.0) domain_name (0.5.25) unf (>= 0.0.5, < 1.0.0) dotenv (2.0.2) @@ -42,7 +42,7 @@ GEM faraday (>= 0.7.4, < 0.10) fastimage (1.6.8) addressable (~> 2.3, >= 2.3.5) - fastlane (1.37.0) + fastlane (1.39.0) addressable (~> 2.3.8) cert (>= 1.1.0, < 2.0.0) credentials_manager (>= 0.10.0, < 1.0.0) @@ -57,11 +57,11 @@ GEM plist (~> 3.1.0) produce (>= 1.0.0, < 2.0.0) rest-client (~> 1.8.0) - scan (>= 0.2.0, < 1.0.0) - sigh (>= 1.1.1, < 2.0.0) + scan (>= 0.2.1, < 1.0.0) + sigh (>= 1.1.3, < 2.0.0) slack-notifier (~> 1.3) snapshot (>= 1.0.4, < 2.0.0) - spaceship (>= 0.13.0, < 1.0.0) + spaceship (>= 0.14.0, < 1.0.0) supply (>= 0.2.1, < 1.0.0) terminal-notifier (~> 1.6.2) terminal-table (~> 1.4.5) @@ -81,7 +81,7 @@ GEM rubyzip (~> 1.1.6) sentry-raven (~> 0.15) terminal-table (~> 1.4.5) - frameit (2.2.2) + frameit (2.3.0) deliver (> 0.3) fastimage (~> 1.6.3) fastlane_core (>= 0.16.0, < 1.0.0) @@ -150,10 +150,10 @@ GEM pem (1.0.1) fastlane_core (>= 0.21.0, < 1.0.0) spaceship (>= 0.12.0, < 1.0.0) - pilot (1.0.0) + pilot (1.0.1) credentials_manager (>= 0.3.0) fastlane_core (>= 0.16.1, < 1.0.0) - spaceship (>= 0.12.0, < 1.0.0) + spaceship (>= 0.14.0, < 1.0.0) terminal-table (~> 1.4.5) plist (3.1.0) produce (1.0.0) @@ -179,7 +179,7 @@ GEM security (0.1.3) sentry-raven (0.15.2) faraday (>= 0.7.6) - sigh (1.1.1) + sigh (1.1.3) fastlane_core (>= 0.19.0, < 1.0.0) plist (~> 3.1) spaceship (>= 0.12.3) @@ -191,12 +191,12 @@ GEM multi_json (~> 1.10) slack-notifier (1.4.0) slop (3.6.0) - snapshot (1.1.0) + snapshot (1.1.1) fastimage (~> 1.6.3) fastlane_core (>= 0.21.0, < 1.0.0) plist (~> 3.1.0) xcpretty (>= 0.2.1) - spaceship (0.13.0) + spaceship (0.14.1) colored credentials_manager (>= 0.9.0) faraday (~> 0.9) diff --git a/Money.podspec b/Money.podspec index d854565..26f2b7c 100644 --- a/Money.podspec +++ b/Money.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "Money" - s.version = "1.2.1" + s.version = "1.3.0" s.summary = "Swift types for working with Money." s.description = <<-DESC @@ -21,7 +21,16 @@ Pod::Spec.new do |s| s.osx.deployment_target = '10.10' s.tvos.deployment_target = '9.0' s.watchos.deployment_target = '2.0' - s.source_files = ['Money/*.swift', 'Money/Decimal/*.swift', 'Money/FX/*.swift'] + + s.source_files = [ + 'Money/Shared/*.swift', + 'Money/Shared/**/*.swift', + 'Money/iOS' + ] + + s.osx.exclude_files = [ 'Money/iOS' ] + s.watchos.exclude_files = [ 'Money/iOS' ] + s.tvos.exclude_files = [ 'Money/iOS' ] s.dependency 'ValueCoding' s.dependency 'Result', '0.6.0-beta.6' diff --git a/Money.xcodeproj/project.pbxproj b/Money.xcodeproj/project.pbxproj index c9155e9..c7a6e14 100644 --- a/Money.xcodeproj/project.pbxproj +++ b/Money.xcodeproj/project.pbxproj @@ -21,101 +21,16 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 653E84051BEF9B860020FF0E /* BitcoinTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84041BEF9B860020FF0E /* BitcoinTests.swift */; }; - 653E84061BEF9B860020FF0E /* BitcoinTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84041BEF9B860020FF0E /* BitcoinTests.swift */; }; - 653E84071BEF9B860020FF0E /* BitcoinTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84041BEF9B860020FF0E /* BitcoinTests.swift */; }; - 653E84161BEFC4BE0020FF0E /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */; }; - 653E84171BEFC4BE0020FF0E /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */; }; - 653E84181BEFC4BE0020FF0E /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */; }; - 653E84191BEFC4BE0020FF0E /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */; }; - 653E841A1BEFC4D40020FF0E /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */; }; - 653E841B1BEFC4DA0020FF0E /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */; }; - 653E841C1BEFC4E00020FF0E /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */; }; - 653E841E1BEFCF720020FF0E /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */; }; - 653E841F1BEFCF720020FF0E /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */; }; - 653E84201BEFCF720020FF0E /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */; }; - 653E84211BEFCF720020FF0E /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */; }; - 653E84221BEFCF7F0020FF0E /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */; }; - 653E84231BEFCF860020FF0E /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */; }; - 653E84241BEFCF8A0020FF0E /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */; }; - 653E84281BEFF1050020FF0E /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84261BEFF1050020FF0E /* Bitcoin.swift */; }; - 653E84291BEFF1050020FF0E /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84261BEFF1050020FF0E /* Bitcoin.swift */; }; - 653E842A1BEFF1050020FF0E /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84261BEFF1050020FF0E /* Bitcoin.swift */; }; - 653E842B1BEFF1050020FF0E /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84261BEFF1050020FF0E /* Bitcoin.swift */; }; - 653E842C1BEFF1050020FF0E /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84271BEFF1050020FF0E /* FX.swift */; }; - 653E842D1BEFF1050020FF0E /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84271BEFF1050020FF0E /* FX.swift */; }; - 653E842E1BEFF1050020FF0E /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84271BEFF1050020FF0E /* FX.swift */; }; - 653E842F1BEFF1050020FF0E /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84271BEFF1050020FF0E /* FX.swift */; }; - 653E84311BEFF11F0020FF0E /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84301BEFF11F0020FF0E /* Yahoo.swift */; }; - 653E84321BEFF11F0020FF0E /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84301BEFF11F0020FF0E /* Yahoo.swift */; }; - 653E84331BEFF11F0020FF0E /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84301BEFF11F0020FF0E /* Yahoo.swift */; }; - 653E84341BEFF11F0020FF0E /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84301BEFF11F0020FF0E /* Yahoo.swift */; }; - 653E84361BEFF12E0020FF0E /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84351BEFF12E0020FF0E /* OpenExchangeRates.swift */; }; - 653E84371BEFF12E0020FF0E /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84351BEFF12E0020FF0E /* OpenExchangeRates.swift */; }; - 653E84381BEFF12E0020FF0E /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84351BEFF12E0020FF0E /* OpenExchangeRates.swift */; }; - 653E84391BEFF12E0020FF0E /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653E84351BEFF12E0020FF0E /* OpenExchangeRates.swift */; }; 6557F4C71BEB7F32003CD2BF /* ValueCoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6557F4C61BEB7F32003CD2BF /* ValueCoding.framework */; }; 6557F4C91BEB7F3D003CD2BF /* ValueCoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6557F4C81BEB7F3D003CD2BF /* ValueCoding.framework */; }; 6557F4CB1BEB7F46003CD2BF /* ValueCoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6557F4CA1BEB7F46003CD2BF /* ValueCoding.framework */; }; 6557F4CD1BEB7F51003CD2BF /* ValueCoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6557F4CC1BEB7F51003CD2BF /* ValueCoding.framework */; }; - 6557F4D61BEB8720003CD2BF /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4D41BEB8720003CD2BF /* Decimal.swift */; }; - 6557F4D71BEB8720003CD2BF /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4D41BEB8720003CD2BF /* Decimal.swift */; }; - 6557F4D81BEB8720003CD2BF /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4D41BEB8720003CD2BF /* Decimal.swift */; }; - 6557F4D91BEB8720003CD2BF /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4D41BEB8720003CD2BF /* Decimal.swift */; }; - 6557F4DA1BEB8720003CD2BF /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4D51BEB8720003CD2BF /* NSDecimalNumberExtensions.swift */; }; - 6557F4DB1BEB8720003CD2BF /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4D51BEB8720003CD2BF /* NSDecimalNumberExtensions.swift */; }; - 6557F4DC1BEB8720003CD2BF /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4D51BEB8720003CD2BF /* NSDecimalNumberExtensions.swift */; }; - 6557F4DD1BEB8720003CD2BF /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4D51BEB8720003CD2BF /* NSDecimalNumberExtensions.swift */; }; - 6557F4DF1BEB8737003CD2BF /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4DE1BEB8737003CD2BF /* DecimalNumberType.swift */; }; - 6557F4E01BEB8737003CD2BF /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4DE1BEB8737003CD2BF /* DecimalNumberType.swift */; }; - 6557F4E11BEB8737003CD2BF /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4DE1BEB8737003CD2BF /* DecimalNumberType.swift */; }; - 6557F4E21BEB8737003CD2BF /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4DE1BEB8737003CD2BF /* DecimalNumberType.swift */; }; - 6557F4E41BEB8850003CD2BF /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4E31BEB8850003CD2BF /* NSDecimalExtensions.swift */; }; - 6557F4E51BEB8850003CD2BF /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4E31BEB8850003CD2BF /* NSDecimalExtensions.swift */; }; - 6557F4E61BEB8850003CD2BF /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4E31BEB8850003CD2BF /* NSDecimalExtensions.swift */; }; - 6557F4E71BEB8850003CD2BF /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4E31BEB8850003CD2BF /* NSDecimalExtensions.swift */; }; - 6557F4E91BEB924D003CD2BF /* NSDecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4E81BEB924D003CD2BF /* NSDecimalTests.swift */; }; - 6557F4EA1BEB924D003CD2BF /* NSDecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4E81BEB924D003CD2BF /* NSDecimalTests.swift */; }; - 6557F4EB1BEB924D003CD2BF /* NSDecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4E81BEB924D003CD2BF /* NSDecimalTests.swift */; }; - 6557F4ED1BEB97AC003CD2BF /* NSDecimalNumberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4EC1BEB97AC003CD2BF /* NSDecimalNumberTests.swift */; }; - 6557F4EE1BEB97AC003CD2BF /* NSDecimalNumberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4EC1BEB97AC003CD2BF /* NSDecimalNumberTests.swift */; }; - 6557F4EF1BEB97AC003CD2BF /* NSDecimalNumberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6557F4EC1BEB97AC003CD2BF /* NSDecimalNumberTests.swift */; }; - 6557F4F11BEBC5CD003CD2BF /* Yahoo GBPUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 6557F4F01BEBC5C1003CD2BF /* Yahoo GBPUSD.json */; }; - 6557F4F21BEBC5D2003CD2BF /* Yahoo GBPUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 6557F4F01BEBC5C1003CD2BF /* Yahoo GBPUSD.json */; }; - 6557F4F31BEBC5D7003CD2BF /* Yahoo GBPUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 6557F4F01BEBC5C1003CD2BF /* Yahoo GBPUSD.json */; }; - 656409411BEAABCA00F82B4D /* FXYahooTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 656409401BEAABCA00F82B4D /* FXYahooTests.swift */; }; - 656409421BEAABCA00F82B4D /* FXYahooTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 656409401BEAABCA00F82B4D /* FXYahooTests.swift */; }; - 656409431BEAABCA00F82B4D /* FXYahooTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 656409401BEAABCA00F82B4D /* FXYahooTests.swift */; }; - 656409451BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 656409441BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift */; }; - 656409461BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 656409441BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift */; }; - 656409471BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 656409441BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift */; }; - 656409491BEAB89400F82B4D /* OpenExchangeRates.org USDEUR.json in Resources */ = {isa = PBXBuildFile; fileRef = 656409481BEAB88700F82B4D /* OpenExchangeRates.org USDEUR.json */; }; - 6564094A1BEAB89B00F82B4D /* OpenExchangeRates.org USDEUR.json in Resources */ = {isa = PBXBuildFile; fileRef = 656409481BEAB88700F82B4D /* OpenExchangeRates.org USDEUR.json */; }; - 6564094B1BEAB8A100F82B4D /* OpenExchangeRates.org USDEUR.json in Resources */ = {isa = PBXBuildFile; fileRef = 656409481BEAB88700F82B4D /* OpenExchangeRates.org USDEUR.json */; }; 6564094D1BEABA6100F82B4D /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6564094C1BEABA6100F82B4D /* SwiftyJSON.framework */; }; 6564094F1BEABA6E00F82B4D /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6564094E1BEABA6E00F82B4D /* SwiftyJSON.framework */; }; 656409511BEABA7A00F82B4D /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 656409501BEABA7A00F82B4D /* SwiftyJSON.framework */; }; 656409531BEABA8400F82B4D /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 656409521BEABA8400F82B4D /* SwiftyJSON.framework */; }; - 657C0B0E1BE10D2700CDB873 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B0D1BE10D2700CDB873 /* Currency.swift */; }; - 657C0B0F1BE10D2700CDB873 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B0D1BE10D2700CDB873 /* Currency.swift */; }; - 657C0B101BE10D2700CDB873 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B0D1BE10D2700CDB873 /* Currency.swift */; }; - 657C0B111BE10D2700CDB873 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B0D1BE10D2700CDB873 /* Currency.swift */; }; - 657C0B131BE1211900CDB873 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B121BE1211900CDB873 /* Support.swift */; }; - 657C0B141BE1211900CDB873 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B121BE1211900CDB873 /* Support.swift */; }; - 657C0B151BE1211900CDB873 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B121BE1211900CDB873 /* Support.swift */; }; - 657C0B161BE1211900CDB873 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B121BE1211900CDB873 /* Support.swift */; }; - 658863B91BEA2B26003482ED /* Troll.png in Resources */ = {isa = PBXBuildFile; fileRef = 658863B61BEA2B0B003482ED /* Troll.png */; }; - 658863BA1BEA2B2C003482ED /* Troll.png in Resources */ = {isa = PBXBuildFile; fileRef = 658863B61BEA2B0B003482ED /* Troll.png */; }; - 658863BB1BEA2B30003482ED /* Troll.png in Resources */ = {isa = PBXBuildFile; fileRef = 658863B61BEA2B0B003482ED /* Troll.png */; }; 658863BD1BEA34ED003482ED /* DVR.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 658863BC1BEA34ED003482ED /* DVR.framework */; }; 658863BF1BEA3514003482ED /* DVR.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 658863BE1BEA3514003482ED /* DVR.framework */; }; - 65A876E51BE79A9300E26F22 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B1B1BE164B700CDB873 /* Autogenerated.swift */; }; - 65A876E61BE79A9400E26F22 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B1B1BE164B700CDB873 /* Autogenerated.swift */; }; - 65A876E71BE79A9500E26F22 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B1B1BE164B700CDB873 /* Autogenerated.swift */; }; - 65A876E81BE79A9600E26F22 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657C0B1B1BE164B700CDB873 /* Autogenerated.swift */; }; - 65A876F41BE7D1A100E26F22 /* FXTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65A876F31BE7D1A100E26F22 /* FXTests.swift */; }; - 65A876F51BE7D1A100E26F22 /* FXTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65A876F31BE7D1A100E26F22 /* FXTests.swift */; }; - 65A876F61BE7D1A100E26F22 /* FXTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65A876F31BE7D1A100E26F22 /* FXTests.swift */; }; 65B92ADE1BE0E4A700F82024 /* Money.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65B92AD31BE0E4A700F82024 /* Money.framework */; }; 65B92B071BE0E4D800F82024 /* Money.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65B92AFD1BE0E4D800F82024 /* Money.framework */; }; 65B92B231BE0E4E700F82024 /* Money.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65B92B191BE0E4E700F82024 /* Money.framework */; }; @@ -124,20 +39,99 @@ 65B92B3C1BE0E70500F82024 /* Money.h in Headers */ = {isa = PBXBuildFile; fileRef = 65B92B331BE0E51E00F82024 /* Money.h */; settings = {ATTRIBUTES = (Public, ); }; }; 65B92B3D1BE0E70500F82024 /* Money.h in Headers */ = {isa = PBXBuildFile; fileRef = 65B92B331BE0E51E00F82024 /* Money.h */; settings = {ATTRIBUTES = (Public, ); }; }; 65B92B3E1BE0E70600F82024 /* Money.h in Headers */ = {isa = PBXBuildFile; fileRef = 65B92B331BE0E51E00F82024 /* Money.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65B92B3F1BE0E72700F82024 /* MoneyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B92B391BE0E69500F82024 /* MoneyTests.swift */; }; - 65B92B401BE0E72800F82024 /* MoneyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B92B391BE0E69500F82024 /* MoneyTests.swift */; }; - 65B92B411BE0E72900F82024 /* MoneyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B92B391BE0E69500F82024 /* MoneyTests.swift */; }; - 65B92B431BE0F93F00F82024 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B92B421BE0F93F00F82024 /* Money.swift */; }; - 65B92B441BE0F93F00F82024 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B92B421BE0F93F00F82024 /* Money.swift */; }; - 65B92B451BE0F93F00F82024 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B92B421BE0F93F00F82024 /* Money.swift */; }; - 65B92B461BE0F93F00F82024 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B92B421BE0F93F00F82024 /* Money.swift */; }; - 65D305521BE8E8210032D99F /* DecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65D305511BE8E8210032D99F /* DecimalTests.swift */; }; - 65D305531BE8E8210032D99F /* DecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65D305511BE8E8210032D99F /* DecimalTests.swift */; }; - 65D305541BE8E8210032D99F /* DecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65D305511BE8E8210032D99F /* DecimalTests.swift */; }; 65D3055A1BE94F860032D99F /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65D305591BE94F860032D99F /* Result.framework */; }; 65D3055B1BE94FA70032D99F /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65D305571BE94E850032D99F /* Result.framework */; }; 65D3055D1BE94FD40032D99F /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65D3055C1BE94FD40032D99F /* Result.framework */; }; 65D305601BE955020032D99F /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65D3055F1BE955020032D99F /* Result.framework */; }; + 65DD22AE1BFA10F10054F62D /* BitcoinTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A01BFA10DF0054F62D /* BitcoinTests.swift */; }; + 65DD22AF1BFA10F10054F62D /* DecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A11BFA10DF0054F62D /* DecimalTests.swift */; }; + 65DD22B01BFA10F10054F62D /* FXOpenExchangeRatesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A71BFA10DF0054F62D /* FXOpenExchangeRatesTests.swift */; }; + 65DD22B11BFA10F10054F62D /* FXTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A81BFA10DF0054F62D /* FXTests.swift */; }; + 65DD22B21BFA10F10054F62D /* FXYahooTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A91BFA10DF0054F62D /* FXYahooTests.swift */; }; + 65DD22B31BFA10F10054F62D /* MoneyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AA1BFA10DF0054F62D /* MoneyTests.swift */; }; + 65DD22B41BFA10F10054F62D /* NSDecimalNumberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AB1BFA10DF0054F62D /* NSDecimalNumberTests.swift */; }; + 65DD22B51BFA10F10054F62D /* NSDecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AC1BFA10DF0054F62D /* NSDecimalTests.swift */; }; + 65DD22B61BFA10F20054F62D /* BitcoinTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A01BFA10DF0054F62D /* BitcoinTests.swift */; }; + 65DD22B71BFA10F20054F62D /* DecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A11BFA10DF0054F62D /* DecimalTests.swift */; }; + 65DD22B81BFA10F20054F62D /* FXOpenExchangeRatesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A71BFA10DF0054F62D /* FXOpenExchangeRatesTests.swift */; }; + 65DD22B91BFA10F20054F62D /* FXTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A81BFA10DF0054F62D /* FXTests.swift */; }; + 65DD22BA1BFA10F20054F62D /* FXYahooTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A91BFA10DF0054F62D /* FXYahooTests.swift */; }; + 65DD22BB1BFA10F20054F62D /* MoneyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AA1BFA10DF0054F62D /* MoneyTests.swift */; }; + 65DD22BC1BFA10F20054F62D /* NSDecimalNumberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AB1BFA10DF0054F62D /* NSDecimalNumberTests.swift */; }; + 65DD22BD1BFA10F20054F62D /* NSDecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AC1BFA10DF0054F62D /* NSDecimalTests.swift */; }; + 65DD22BE1BFA10F30054F62D /* BitcoinTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A01BFA10DF0054F62D /* BitcoinTests.swift */; }; + 65DD22BF1BFA10F30054F62D /* DecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A11BFA10DF0054F62D /* DecimalTests.swift */; }; + 65DD22C01BFA10F30054F62D /* FXOpenExchangeRatesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A71BFA10DF0054F62D /* FXOpenExchangeRatesTests.swift */; }; + 65DD22C11BFA10F30054F62D /* FXTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A81BFA10DF0054F62D /* FXTests.swift */; }; + 65DD22C21BFA10F30054F62D /* FXYahooTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22A91BFA10DF0054F62D /* FXYahooTests.swift */; }; + 65DD22C31BFA10F30054F62D /* MoneyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AA1BFA10DF0054F62D /* MoneyTests.swift */; }; + 65DD22C41BFA10F30054F62D /* NSDecimalNumberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AB1BFA10DF0054F62D /* NSDecimalNumberTests.swift */; }; + 65DD22C51BFA10F30054F62D /* NSDecimalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD22AC1BFA10DF0054F62D /* NSDecimalTests.swift */; }; + 65DD22C61BFA10F60054F62D /* ApplePayTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DD229E1BFA10DF0054F62D /* ApplePayTests.swift */; }; + 65DD22C81BFA110D0054F62D /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A31BFA10DF0054F62D /* CEX.IO BTCUSD.json */; }; + 65DD22C91BFA110D0054F62D /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A41BFA10DF0054F62D /* CEX.IO USDBTC.json */; }; + 65DD22CA1BFA110D0054F62D /* OpenExchangeRates.org USDEUR.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A51BFA10DF0054F62D /* OpenExchangeRates.org USDEUR.json */; }; + 65DD22CB1BFA110D0054F62D /* Yahoo GBPUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A61BFA10DF0054F62D /* Yahoo GBPUSD.json */; }; + 65DD22CC1BFA11150054F62D /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A31BFA10DF0054F62D /* CEX.IO BTCUSD.json */; }; + 65DD22CD1BFA11150054F62D /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A41BFA10DF0054F62D /* CEX.IO USDBTC.json */; }; + 65DD22CE1BFA11150054F62D /* OpenExchangeRates.org USDEUR.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A51BFA10DF0054F62D /* OpenExchangeRates.org USDEUR.json */; }; + 65DD22CF1BFA11150054F62D /* Yahoo GBPUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A61BFA10DF0054F62D /* Yahoo GBPUSD.json */; }; + 65DD22D01BFA111B0054F62D /* CEX.IO BTCUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A31BFA10DF0054F62D /* CEX.IO BTCUSD.json */; }; + 65DD22D11BFA111B0054F62D /* CEX.IO USDBTC.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A41BFA10DF0054F62D /* CEX.IO USDBTC.json */; }; + 65DD22D21BFA111B0054F62D /* OpenExchangeRates.org USDEUR.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A51BFA10DF0054F62D /* OpenExchangeRates.org USDEUR.json */; }; + 65DD22D31BFA111B0054F62D /* Yahoo GBPUSD.json in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22A61BFA10DF0054F62D /* Yahoo GBPUSD.json */; }; + 65DD22D41BFA12810054F62D /* Troll.png in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22AD1BFA10DF0054F62D /* Troll.png */; }; + 65DD22D51BFA12870054F62D /* Troll.png in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22AD1BFA10DF0054F62D /* Troll.png */; }; + 65DD22D61BFA128D0054F62D /* Troll.png in Resources */ = {isa = PBXBuildFile; fileRef = 65DD22AD1BFA10DF0054F62D /* Troll.png */; }; + 65DEE3351BFA0F370043A718 /* ApplePay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3251BFA0F370043A718 /* ApplePay.swift */; }; + 65DEE3391BFA0F370043A718 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3271BFA0F370043A718 /* Autogenerated.swift */; }; + 65DEE33A1BFA0F370043A718 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3271BFA0F370043A718 /* Autogenerated.swift */; }; + 65DEE33B1BFA0F370043A718 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3271BFA0F370043A718 /* Autogenerated.swift */; }; + 65DEE33C1BFA0F370043A718 /* Autogenerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3271BFA0F370043A718 /* Autogenerated.swift */; }; + 65DEE33D1BFA0F370043A718 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3281BFA0F370043A718 /* Currency.swift */; }; + 65DEE33E1BFA0F370043A718 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3281BFA0F370043A718 /* Currency.swift */; }; + 65DEE33F1BFA0F370043A718 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3281BFA0F370043A718 /* Currency.swift */; }; + 65DEE3401BFA0F370043A718 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3281BFA0F370043A718 /* Currency.swift */; }; + 65DEE3411BFA0F370043A718 /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32A1BFA0F370043A718 /* Decimal.swift */; }; + 65DEE3421BFA0F370043A718 /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32A1BFA0F370043A718 /* Decimal.swift */; }; + 65DEE3431BFA0F370043A718 /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32A1BFA0F370043A718 /* Decimal.swift */; }; + 65DEE3441BFA0F370043A718 /* Decimal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32A1BFA0F370043A718 /* Decimal.swift */; }; + 65DEE3451BFA0F370043A718 /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32B1BFA0F370043A718 /* DecimalNumberType.swift */; }; + 65DEE3461BFA0F370043A718 /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32B1BFA0F370043A718 /* DecimalNumberType.swift */; }; + 65DEE3471BFA0F370043A718 /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32B1BFA0F370043A718 /* DecimalNumberType.swift */; }; + 65DEE3481BFA0F370043A718 /* DecimalNumberType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32B1BFA0F370043A718 /* DecimalNumberType.swift */; }; + 65DEE3491BFA0F370043A718 /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32C1BFA0F370043A718 /* NSDecimalExtensions.swift */; }; + 65DEE34A1BFA0F370043A718 /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32C1BFA0F370043A718 /* NSDecimalExtensions.swift */; }; + 65DEE34B1BFA0F370043A718 /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32C1BFA0F370043A718 /* NSDecimalExtensions.swift */; }; + 65DEE34C1BFA0F370043A718 /* NSDecimalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32C1BFA0F370043A718 /* NSDecimalExtensions.swift */; }; + 65DEE34D1BFA0F370043A718 /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32D1BFA0F370043A718 /* NSDecimalNumberExtensions.swift */; }; + 65DEE34E1BFA0F370043A718 /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32D1BFA0F370043A718 /* NSDecimalNumberExtensions.swift */; }; + 65DEE34F1BFA0F370043A718 /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32D1BFA0F370043A718 /* NSDecimalNumberExtensions.swift */; }; + 65DEE3501BFA0F370043A718 /* NSDecimalNumberExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32D1BFA0F370043A718 /* NSDecimalNumberExtensions.swift */; }; + 65DEE3511BFA0F370043A718 /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32F1BFA0F370043A718 /* Bitcoin.swift */; }; + 65DEE3521BFA0F370043A718 /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32F1BFA0F370043A718 /* Bitcoin.swift */; }; + 65DEE3531BFA0F370043A718 /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32F1BFA0F370043A718 /* Bitcoin.swift */; }; + 65DEE3541BFA0F370043A718 /* Bitcoin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE32F1BFA0F370043A718 /* Bitcoin.swift */; }; + 65DEE3551BFA0F370043A718 /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3301BFA0F370043A718 /* FX.swift */; }; + 65DEE3561BFA0F370043A718 /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3301BFA0F370043A718 /* FX.swift */; }; + 65DEE3571BFA0F370043A718 /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3301BFA0F370043A718 /* FX.swift */; }; + 65DEE3581BFA0F370043A718 /* FX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3301BFA0F370043A718 /* FX.swift */; }; + 65DEE3591BFA0F370043A718 /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3311BFA0F370043A718 /* OpenExchangeRates.swift */; }; + 65DEE35A1BFA0F370043A718 /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3311BFA0F370043A718 /* OpenExchangeRates.swift */; }; + 65DEE35B1BFA0F370043A718 /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3311BFA0F370043A718 /* OpenExchangeRates.swift */; }; + 65DEE35C1BFA0F370043A718 /* OpenExchangeRates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3311BFA0F370043A718 /* OpenExchangeRates.swift */; }; + 65DEE35D1BFA0F370043A718 /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3321BFA0F370043A718 /* Yahoo.swift */; }; + 65DEE35E1BFA0F370043A718 /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3321BFA0F370043A718 /* Yahoo.swift */; }; + 65DEE35F1BFA0F370043A718 /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3321BFA0F370043A718 /* Yahoo.swift */; }; + 65DEE3601BFA0F370043A718 /* Yahoo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3321BFA0F370043A718 /* Yahoo.swift */; }; + 65DEE3611BFA0F370043A718 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3331BFA0F370043A718 /* Money.swift */; }; + 65DEE3621BFA0F370043A718 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3331BFA0F370043A718 /* Money.swift */; }; + 65DEE3631BFA0F370043A718 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3331BFA0F370043A718 /* Money.swift */; }; + 65DEE3641BFA0F370043A718 /* Money.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3331BFA0F370043A718 /* Money.swift */; }; + 65DEE3651BFA0F370043A718 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3341BFA0F370043A718 /* Support.swift */; }; + 65DEE3661BFA0F370043A718 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3341BFA0F370043A718 /* Support.swift */; }; + 65DEE3671BFA0F370043A718 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3341BFA0F370043A718 /* Support.swift */; }; + 65DEE3681BFA0F370043A718 /* Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DEE3341BFA0F370043A718 /* Support.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -193,39 +187,17 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 653E84041BEF9B860020FF0E /* BitcoinTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BitcoinTests.swift; sourceTree = ""; }; - 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "CEX.IO BTCUSD.json"; path = "DVR Cassettes/CEX.IO BTCUSD.json"; sourceTree = ""; }; - 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "CEX.IO USDBTC.json"; path = "DVR Cassettes/CEX.IO USDBTC.json"; sourceTree = ""; }; - 653E84261BEFF1050020FF0E /* Bitcoin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Bitcoin.swift; sourceTree = ""; }; - 653E84271BEFF1050020FF0E /* FX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FX.swift; sourceTree = ""; }; - 653E84301BEFF11F0020FF0E /* Yahoo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Yahoo.swift; sourceTree = ""; }; - 653E84351BEFF12E0020FF0E /* OpenExchangeRates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenExchangeRates.swift; sourceTree = ""; }; 6557F4C61BEB7F32003CD2BF /* ValueCoding.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ValueCoding.framework; path = Carthage/Build/iOS/ValueCoding.framework; sourceTree = ""; }; 6557F4C81BEB7F3D003CD2BF /* ValueCoding.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ValueCoding.framework; path = Carthage/Build/watchOS/ValueCoding.framework; sourceTree = ""; }; 6557F4CA1BEB7F46003CD2BF /* ValueCoding.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ValueCoding.framework; path = Carthage/Build/tvOS/ValueCoding.framework; sourceTree = ""; }; 6557F4CC1BEB7F51003CD2BF /* ValueCoding.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ValueCoding.framework; path = Carthage/Build/Mac/ValueCoding.framework; sourceTree = ""; }; - 6557F4D41BEB8720003CD2BF /* Decimal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Decimal.swift; sourceTree = ""; }; - 6557F4D51BEB8720003CD2BF /* NSDecimalNumberExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDecimalNumberExtensions.swift; sourceTree = ""; }; - 6557F4DE1BEB8737003CD2BF /* DecimalNumberType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DecimalNumberType.swift; sourceTree = ""; }; - 6557F4E31BEB8850003CD2BF /* NSDecimalExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDecimalExtensions.swift; sourceTree = ""; }; - 6557F4E81BEB924D003CD2BF /* NSDecimalTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDecimalTests.swift; sourceTree = ""; }; - 6557F4EC1BEB97AC003CD2BF /* NSDecimalNumberTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDecimalNumberTests.swift; sourceTree = ""; }; - 6557F4F01BEBC5C1003CD2BF /* Yahoo GBPUSD.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "Yahoo GBPUSD.json"; path = "DVR Cassettes/Yahoo GBPUSD.json"; sourceTree = ""; }; - 656409401BEAABCA00F82B4D /* FXYahooTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FXYahooTests.swift; sourceTree = ""; }; - 656409441BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FXOpenExchangeRatesTests.swift; sourceTree = ""; }; - 656409481BEAB88700F82B4D /* OpenExchangeRates.org USDEUR.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "OpenExchangeRates.org USDEUR.json"; path = "DVR Cassettes/OpenExchangeRates.org USDEUR.json"; sourceTree = ""; }; 6564094C1BEABA6100F82B4D /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/iOS/SwiftyJSON.framework; sourceTree = ""; }; 6564094E1BEABA6E00F82B4D /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/watchOS/SwiftyJSON.framework; sourceTree = ""; }; 656409501BEABA7A00F82B4D /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/tvOS/SwiftyJSON.framework; sourceTree = ""; }; 656409521BEABA8400F82B4D /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/Mac/SwiftyJSON.framework; sourceTree = ""; }; - 657C0B0D1BE10D2700CDB873 /* Currency.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Currency.swift; sourceTree = ""; }; - 657C0B121BE1211900CDB873 /* Support.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Support.swift; sourceTree = ""; }; - 657C0B1B1BE164B700CDB873 /* Autogenerated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Autogenerated.swift; sourceTree = ""; }; - 658863B61BEA2B0B003482ED /* Troll.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Troll.png; sourceTree = ""; }; 658863BC1BEA34ED003482ED /* DVR.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DVR.framework; path = Carthage/Build/iOS/DVR.framework; sourceTree = ""; }; 658863BE1BEA3514003482ED /* DVR.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DVR.framework; path = Carthage/Build/Mac/DVR.framework; sourceTree = ""; }; 65A876D61BE6491800E26F22 /* Generate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Generate.swift; path = "Supporting Files/Generate.swift"; sourceTree = SOURCE_ROOT; }; - 65A876F31BE7D1A100E26F22 /* FXTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FXTests.swift; sourceTree = ""; }; 65B92AD31BE0E4A700F82024 /* Money.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Money.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 65B92ADD1BE0E4A700F82024 /* Money-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Money-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 65B92AF01BE0E4C800F82024 /* Money.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Money.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -237,13 +209,37 @@ 65B92B331BE0E51E00F82024 /* Money.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Money.h; path = "Supporting Files/Money.h"; sourceTree = SOURCE_ROOT; }; 65B92B361BE0E57800F82024 /* Money.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Money.xcconfig; path = "Supporting Files/Money.xcconfig"; sourceTree = SOURCE_ROOT; }; 65B92B381BE0E69500F82024 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 65B92B391BE0E69500F82024 /* MoneyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MoneyTests.swift; sourceTree = ""; }; - 65B92B421BE0F93F00F82024 /* Money.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Money.swift; sourceTree = ""; }; - 65D305511BE8E8210032D99F /* DecimalTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DecimalTests.swift; sourceTree = ""; }; 65D305571BE94E850032D99F /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Result.framework; path = Carthage/Build/tvOS/Result.framework; sourceTree = ""; }; 65D305591BE94F860032D99F /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Result.framework; path = Carthage/Build/watchOS/Result.framework; sourceTree = ""; }; 65D3055C1BE94FD40032D99F /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Result.framework; path = Carthage/Build/Mac/Result.framework; sourceTree = ""; }; 65D3055F1BE955020032D99F /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Result.framework; path = Carthage/Build/iOS/Result.framework; sourceTree = ""; }; + 65DD229E1BFA10DF0054F62D /* ApplePayTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplePayTests.swift; sourceTree = ""; }; + 65DD22A01BFA10DF0054F62D /* BitcoinTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BitcoinTests.swift; sourceTree = ""; }; + 65DD22A11BFA10DF0054F62D /* DecimalTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DecimalTests.swift; sourceTree = ""; }; + 65DD22A31BFA10DF0054F62D /* CEX.IO BTCUSD.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "CEX.IO BTCUSD.json"; sourceTree = ""; }; + 65DD22A41BFA10DF0054F62D /* CEX.IO USDBTC.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "CEX.IO USDBTC.json"; sourceTree = ""; }; + 65DD22A51BFA10DF0054F62D /* OpenExchangeRates.org USDEUR.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "OpenExchangeRates.org USDEUR.json"; sourceTree = ""; }; + 65DD22A61BFA10DF0054F62D /* Yahoo GBPUSD.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "Yahoo GBPUSD.json"; sourceTree = ""; }; + 65DD22A71BFA10DF0054F62D /* FXOpenExchangeRatesTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FXOpenExchangeRatesTests.swift; sourceTree = ""; }; + 65DD22A81BFA10DF0054F62D /* FXTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FXTests.swift; sourceTree = ""; }; + 65DD22A91BFA10DF0054F62D /* FXYahooTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FXYahooTests.swift; sourceTree = ""; }; + 65DD22AA1BFA10DF0054F62D /* MoneyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MoneyTests.swift; sourceTree = ""; }; + 65DD22AB1BFA10DF0054F62D /* NSDecimalNumberTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDecimalNumberTests.swift; sourceTree = ""; }; + 65DD22AC1BFA10DF0054F62D /* NSDecimalTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDecimalTests.swift; sourceTree = ""; }; + 65DD22AD1BFA10DF0054F62D /* Troll.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Troll.png; sourceTree = ""; }; + 65DEE3251BFA0F370043A718 /* ApplePay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplePay.swift; sourceTree = ""; }; + 65DEE3271BFA0F370043A718 /* Autogenerated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Autogenerated.swift; sourceTree = ""; }; + 65DEE3281BFA0F370043A718 /* Currency.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Currency.swift; sourceTree = ""; }; + 65DEE32A1BFA0F370043A718 /* Decimal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Decimal.swift; sourceTree = ""; }; + 65DEE32B1BFA0F370043A718 /* DecimalNumberType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DecimalNumberType.swift; sourceTree = ""; }; + 65DEE32C1BFA0F370043A718 /* NSDecimalExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDecimalExtensions.swift; sourceTree = ""; }; + 65DEE32D1BFA0F370043A718 /* NSDecimalNumberExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDecimalNumberExtensions.swift; sourceTree = ""; }; + 65DEE32F1BFA0F370043A718 /* Bitcoin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Bitcoin.swift; sourceTree = ""; }; + 65DEE3301BFA0F370043A718 /* FX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FX.swift; sourceTree = ""; }; + 65DEE3311BFA0F370043A718 /* OpenExchangeRates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenExchangeRates.swift; sourceTree = ""; }; + 65DEE3321BFA0F370043A718 /* Yahoo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Yahoo.swift; sourceTree = ""; }; + 65DEE3331BFA0F370043A718 /* Money.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Money.swift; sourceTree = ""; }; + 65DEE3341BFA0F370043A718 /* Support.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Support.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -316,28 +312,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 653E84251BEFF1050020FF0E /* FX */ = { - isa = PBXGroup; - children = ( - 653E84261BEFF1050020FF0E /* Bitcoin.swift */, - 653E84271BEFF1050020FF0E /* FX.swift */, - 653E84301BEFF11F0020FF0E /* Yahoo.swift */, - 653E84351BEFF12E0020FF0E /* OpenExchangeRates.swift */, - ); - path = FX; - sourceTree = ""; - }; - 6557F4D31BEB8720003CD2BF /* Decimal */ = { - isa = PBXGroup; - children = ( - 6557F4D41BEB8720003CD2BF /* Decimal.swift */, - 6557F4DE1BEB8737003CD2BF /* DecimalNumberType.swift */, - 6557F4D51BEB8720003CD2BF /* NSDecimalNumberExtensions.swift */, - 6557F4E31BEB8850003CD2BF /* NSDecimalExtensions.swift */, - ); - path = Decimal; - sourceTree = ""; - }; 65B92AC71BE0E46C00F82024 = { isa = PBXGroup; children = ( @@ -366,12 +340,8 @@ 65B92B301BE0E51E00F82024 /* Money */ = { isa = PBXGroup; children = ( - 657C0B1B1BE164B700CDB873 /* Autogenerated.swift */, - 657C0B0D1BE10D2700CDB873 /* Currency.swift */, - 65B92B421BE0F93F00F82024 /* Money.swift */, - 657C0B121BE1211900CDB873 /* Support.swift */, - 6557F4D31BEB8720003CD2BF /* Decimal */, - 653E84251BEFF1050020FF0E /* FX */, + 65DEE3241BFA0F370043A718 /* iOS */, + 65DEE3261BFA0F370043A718 /* Shared */, ); path = Money; sourceTree = ""; @@ -392,16 +362,8 @@ isa = PBXGroup; children = ( 65B92B381BE0E69500F82024 /* Info.plist */, - 658863B61BEA2B0B003482ED /* Troll.png */, - 653E84041BEF9B860020FF0E /* BitcoinTests.swift */, - 65D305511BE8E8210032D99F /* DecimalTests.swift */, - 656409441BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift */, - 65A876F31BE7D1A100E26F22 /* FXTests.swift */, - 656409401BEAABCA00F82B4D /* FXYahooTests.swift */, - 65B92B391BE0E69500F82024 /* MoneyTests.swift */, - 6557F4EC1BEB97AC003CD2BF /* NSDecimalNumberTests.swift */, - 6557F4E81BEB924D003CD2BF /* NSDecimalTests.swift */, - 65FC56411BEA667300727556 /* Network Responses */, + 65DD229D1BFA10DF0054F62D /* iOS */, + 65DD229F1BFA10DF0054F62D /* Shared */, ); path = Tests; sourceTree = ""; @@ -427,15 +389,83 @@ name = Dependencies; sourceTree = ""; }; - 65FC56411BEA667300727556 /* Network Responses */ = { + 65DD229D1BFA10DF0054F62D /* iOS */ = { + isa = PBXGroup; + children = ( + 65DD229E1BFA10DF0054F62D /* ApplePayTests.swift */, + ); + path = iOS; + sourceTree = ""; + }; + 65DD229F1BFA10DF0054F62D /* Shared */ = { + isa = PBXGroup; + children = ( + 65DD22AD1BFA10DF0054F62D /* Troll.png */, + 65DD22A01BFA10DF0054F62D /* BitcoinTests.swift */, + 65DD22A11BFA10DF0054F62D /* DecimalTests.swift */, + 65DD22A71BFA10DF0054F62D /* FXOpenExchangeRatesTests.swift */, + 65DD22A81BFA10DF0054F62D /* FXTests.swift */, + 65DD22A91BFA10DF0054F62D /* FXYahooTests.swift */, + 65DD22AA1BFA10DF0054F62D /* MoneyTests.swift */, + 65DD22AB1BFA10DF0054F62D /* NSDecimalNumberTests.swift */, + 65DD22AC1BFA10DF0054F62D /* NSDecimalTests.swift */, + 65DD22A21BFA10DF0054F62D /* DVR Cassettes */, + ); + path = Shared; + sourceTree = ""; + }; + 65DD22A21BFA10DF0054F62D /* DVR Cassettes */ = { isa = PBXGroup; children = ( - 653E841D1BEFCF720020FF0E /* CEX.IO USDBTC.json */, - 653E84151BEFC4BE0020FF0E /* CEX.IO BTCUSD.json */, - 6557F4F01BEBC5C1003CD2BF /* Yahoo GBPUSD.json */, - 656409481BEAB88700F82B4D /* OpenExchangeRates.org USDEUR.json */, + 65DD22A31BFA10DF0054F62D /* CEX.IO BTCUSD.json */, + 65DD22A41BFA10DF0054F62D /* CEX.IO USDBTC.json */, + 65DD22A51BFA10DF0054F62D /* OpenExchangeRates.org USDEUR.json */, + 65DD22A61BFA10DF0054F62D /* Yahoo GBPUSD.json */, ); - name = "Network Responses"; + path = "DVR Cassettes"; + sourceTree = ""; + }; + 65DEE3241BFA0F370043A718 /* iOS */ = { + isa = PBXGroup; + children = ( + 65DEE3251BFA0F370043A718 /* ApplePay.swift */, + ); + path = iOS; + sourceTree = ""; + }; + 65DEE3261BFA0F370043A718 /* Shared */ = { + isa = PBXGroup; + children = ( + 65DEE3271BFA0F370043A718 /* Autogenerated.swift */, + 65DEE3281BFA0F370043A718 /* Currency.swift */, + 65DEE3331BFA0F370043A718 /* Money.swift */, + 65DEE3341BFA0F370043A718 /* Support.swift */, + 65DEE3291BFA0F370043A718 /* Decimal */, + 65DEE32E1BFA0F370043A718 /* FX */, + ); + path = Shared; + sourceTree = ""; + }; + 65DEE3291BFA0F370043A718 /* Decimal */ = { + isa = PBXGroup; + children = ( + 65DEE32A1BFA0F370043A718 /* Decimal.swift */, + 65DEE32B1BFA0F370043A718 /* DecimalNumberType.swift */, + 65DEE32C1BFA0F370043A718 /* NSDecimalExtensions.swift */, + 65DEE32D1BFA0F370043A718 /* NSDecimalNumberExtensions.swift */, + ); + path = Decimal; + sourceTree = ""; + }; + 65DEE32E1BFA0F370043A718 /* FX */ = { + isa = PBXGroup; + children = ( + 65DEE32F1BFA0F370043A718 /* Bitcoin.swift */, + 65DEE3301BFA0F370043A718 /* FX.swift */, + 65DEE3311BFA0F370043A718 /* OpenExchangeRates.swift */, + 65DEE3321BFA0F370043A718 /* Yahoo.swift */, + ); + path = FX; sourceTree = ""; }; /* End PBXGroup section */ @@ -674,8 +704,6 @@ buildActionMask = 2147483647; files = ( 65B92B3A1BE0E69500F82024 /* Info.plist in Resources */, - 653E841E1BEFCF720020FF0E /* CEX.IO USDBTC.json in Resources */, - 653E84161BEFC4BE0020FF0E /* CEX.IO BTCUSD.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -683,11 +711,11 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84221BEFCF7F0020FF0E /* CEX.IO USDBTC.json in Resources */, - 653E841A1BEFC4D40020FF0E /* CEX.IO BTCUSD.json in Resources */, - 6557F4F11BEBC5CD003CD2BF /* Yahoo GBPUSD.json in Resources */, - 656409491BEAB89400F82B4D /* OpenExchangeRates.org USDEUR.json in Resources */, - 658863B91BEA2B26003482ED /* Troll.png in Resources */, + 65DD22D41BFA12810054F62D /* Troll.png in Resources */, + 65DD22C81BFA110D0054F62D /* CEX.IO BTCUSD.json in Resources */, + 65DD22C91BFA110D0054F62D /* CEX.IO USDBTC.json in Resources */, + 65DD22CA1BFA110D0054F62D /* OpenExchangeRates.org USDEUR.json in Resources */, + 65DD22CB1BFA110D0054F62D /* Yahoo GBPUSD.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -695,8 +723,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84171BEFC4BE0020FF0E /* CEX.IO BTCUSD.json in Resources */, - 653E841F1BEFCF720020FF0E /* CEX.IO USDBTC.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -704,8 +730,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84181BEFC4BE0020FF0E /* CEX.IO BTCUSD.json in Resources */, - 653E84201BEFCF720020FF0E /* CEX.IO USDBTC.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -713,11 +737,11 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84231BEFCF860020FF0E /* CEX.IO USDBTC.json in Resources */, - 653E841B1BEFC4DA0020FF0E /* CEX.IO BTCUSD.json in Resources */, - 6557F4F21BEBC5D2003CD2BF /* Yahoo GBPUSD.json in Resources */, - 6564094A1BEAB89B00F82B4D /* OpenExchangeRates.org USDEUR.json in Resources */, - 658863BA1BEA2B2C003482ED /* Troll.png in Resources */, + 65DD22D51BFA12870054F62D /* Troll.png in Resources */, + 65DD22CC1BFA11150054F62D /* CEX.IO BTCUSD.json in Resources */, + 65DD22CD1BFA11150054F62D /* CEX.IO USDBTC.json in Resources */, + 65DD22CE1BFA11150054F62D /* OpenExchangeRates.org USDEUR.json in Resources */, + 65DD22CF1BFA11150054F62D /* Yahoo GBPUSD.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -725,8 +749,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84191BEFC4BE0020FF0E /* CEX.IO BTCUSD.json in Resources */, - 653E84211BEFCF720020FF0E /* CEX.IO USDBTC.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -734,11 +756,11 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84241BEFCF8A0020FF0E /* CEX.IO USDBTC.json in Resources */, - 653E841C1BEFC4E00020FF0E /* CEX.IO BTCUSD.json in Resources */, - 6557F4F31BEBC5D7003CD2BF /* Yahoo GBPUSD.json in Resources */, - 6564094B1BEAB8A100F82B4D /* OpenExchangeRates.org USDEUR.json in Resources */, - 658863BB1BEA2B30003482ED /* Troll.png in Resources */, + 65DD22D61BFA128D0054F62D /* Troll.png in Resources */, + 65DD22D01BFA111B0054F62D /* CEX.IO BTCUSD.json in Resources */, + 65DD22D11BFA111B0054F62D /* CEX.IO USDBTC.json in Resources */, + 65DD22D21BFA111B0054F62D /* OpenExchangeRates.org USDEUR.json in Resources */, + 65DD22D31BFA111B0054F62D /* Yahoo GBPUSD.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -755,7 +777,7 @@ ); name = "Generate Currency Type"; outputPaths = ( - "$(SRCROOT)/Money/Autogenerated.swift", + "$(SRCROOT)/Money/Shared/Autogenerated.swift", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -821,18 +843,19 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84311BEFF11F0020FF0E /* Yahoo.swift in Sources */, - 657C0B0E1BE10D2700CDB873 /* Currency.swift in Sources */, - 653E84361BEFF12E0020FF0E /* OpenExchangeRates.swift in Sources */, - 65B92B431BE0F93F00F82024 /* Money.swift in Sources */, - 6557F4E41BEB8850003CD2BF /* NSDecimalExtensions.swift in Sources */, - 653E842C1BEFF1050020FF0E /* FX.swift in Sources */, - 65A876E51BE79A9300E26F22 /* Autogenerated.swift in Sources */, - 6557F4DA1BEB8720003CD2BF /* NSDecimalNumberExtensions.swift in Sources */, - 6557F4DF1BEB8737003CD2BF /* DecimalNumberType.swift in Sources */, - 653E84281BEFF1050020FF0E /* Bitcoin.swift in Sources */, - 6557F4D61BEB8720003CD2BF /* Decimal.swift in Sources */, - 657C0B131BE1211900CDB873 /* Support.swift in Sources */, + 65DEE3651BFA0F370043A718 /* Support.swift in Sources */, + 65DEE3451BFA0F370043A718 /* DecimalNumberType.swift in Sources */, + 65DEE3491BFA0F370043A718 /* NSDecimalExtensions.swift in Sources */, + 65DEE34D1BFA0F370043A718 /* NSDecimalNumberExtensions.swift in Sources */, + 65DEE3411BFA0F370043A718 /* Decimal.swift in Sources */, + 65DEE33D1BFA0F370043A718 /* Currency.swift in Sources */, + 65DEE3611BFA0F370043A718 /* Money.swift in Sources */, + 65DEE3391BFA0F370043A718 /* Autogenerated.swift in Sources */, + 65DEE3551BFA0F370043A718 /* FX.swift in Sources */, + 65DEE35D1BFA0F370043A718 /* Yahoo.swift in Sources */, + 65DEE3511BFA0F370043A718 /* Bitcoin.swift in Sources */, + 65DEE3591BFA0F370043A718 /* OpenExchangeRates.swift in Sources */, + 65DEE3351BFA0F370043A718 /* ApplePay.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -840,14 +863,15 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84051BEF9B860020FF0E /* BitcoinTests.swift in Sources */, - 65B92B3F1BE0E72700F82024 /* MoneyTests.swift in Sources */, - 65D305521BE8E8210032D99F /* DecimalTests.swift in Sources */, - 6557F4E91BEB924D003CD2BF /* NSDecimalTests.swift in Sources */, - 656409411BEAABCA00F82B4D /* FXYahooTests.swift in Sources */, - 65A876F41BE7D1A100E26F22 /* FXTests.swift in Sources */, - 6557F4ED1BEB97AC003CD2BF /* NSDecimalNumberTests.swift in Sources */, - 656409451BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift in Sources */, + 65DD22BE1BFA10F30054F62D /* BitcoinTests.swift in Sources */, + 65DD22C11BFA10F30054F62D /* FXTests.swift in Sources */, + 65DD22C51BFA10F30054F62D /* NSDecimalTests.swift in Sources */, + 65DD22C31BFA10F30054F62D /* MoneyTests.swift in Sources */, + 65DD22C61BFA10F60054F62D /* ApplePayTests.swift in Sources */, + 65DD22C01BFA10F30054F62D /* FXOpenExchangeRatesTests.swift in Sources */, + 65DD22C21BFA10F30054F62D /* FXYahooTests.swift in Sources */, + 65DD22C41BFA10F30054F62D /* NSDecimalNumberTests.swift in Sources */, + 65DD22BF1BFA10F30054F62D /* DecimalTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -855,18 +879,18 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84321BEFF11F0020FF0E /* Yahoo.swift in Sources */, - 657C0B0F1BE10D2700CDB873 /* Currency.swift in Sources */, - 653E84371BEFF12E0020FF0E /* OpenExchangeRates.swift in Sources */, - 65B92B441BE0F93F00F82024 /* Money.swift in Sources */, - 6557F4E51BEB8850003CD2BF /* NSDecimalExtensions.swift in Sources */, - 653E842D1BEFF1050020FF0E /* FX.swift in Sources */, - 65A876E61BE79A9400E26F22 /* Autogenerated.swift in Sources */, - 6557F4DB1BEB8720003CD2BF /* NSDecimalNumberExtensions.swift in Sources */, - 6557F4E01BEB8737003CD2BF /* DecimalNumberType.swift in Sources */, - 653E84291BEFF1050020FF0E /* Bitcoin.swift in Sources */, - 6557F4D71BEB8720003CD2BF /* Decimal.swift in Sources */, - 657C0B141BE1211900CDB873 /* Support.swift in Sources */, + 65DEE3661BFA0F370043A718 /* Support.swift in Sources */, + 65DEE3461BFA0F370043A718 /* DecimalNumberType.swift in Sources */, + 65DEE34A1BFA0F370043A718 /* NSDecimalExtensions.swift in Sources */, + 65DEE34E1BFA0F370043A718 /* NSDecimalNumberExtensions.swift in Sources */, + 65DEE3421BFA0F370043A718 /* Decimal.swift in Sources */, + 65DEE33E1BFA0F370043A718 /* Currency.swift in Sources */, + 65DEE3621BFA0F370043A718 /* Money.swift in Sources */, + 65DEE33A1BFA0F370043A718 /* Autogenerated.swift in Sources */, + 65DEE3561BFA0F370043A718 /* FX.swift in Sources */, + 65DEE35E1BFA0F370043A718 /* Yahoo.swift in Sources */, + 65DEE3521BFA0F370043A718 /* Bitcoin.swift in Sources */, + 65DEE35A1BFA0F370043A718 /* OpenExchangeRates.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -874,18 +898,18 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84331BEFF11F0020FF0E /* Yahoo.swift in Sources */, - 657C0B101BE10D2700CDB873 /* Currency.swift in Sources */, - 653E84381BEFF12E0020FF0E /* OpenExchangeRates.swift in Sources */, - 65B92B451BE0F93F00F82024 /* Money.swift in Sources */, - 6557F4E61BEB8850003CD2BF /* NSDecimalExtensions.swift in Sources */, - 653E842E1BEFF1050020FF0E /* FX.swift in Sources */, - 65A876E71BE79A9500E26F22 /* Autogenerated.swift in Sources */, - 6557F4DC1BEB8720003CD2BF /* NSDecimalNumberExtensions.swift in Sources */, - 6557F4E11BEB8737003CD2BF /* DecimalNumberType.swift in Sources */, - 653E842A1BEFF1050020FF0E /* Bitcoin.swift in Sources */, - 6557F4D81BEB8720003CD2BF /* Decimal.swift in Sources */, - 657C0B151BE1211900CDB873 /* Support.swift in Sources */, + 65DEE3671BFA0F370043A718 /* Support.swift in Sources */, + 65DEE3471BFA0F370043A718 /* DecimalNumberType.swift in Sources */, + 65DEE34B1BFA0F370043A718 /* NSDecimalExtensions.swift in Sources */, + 65DEE34F1BFA0F370043A718 /* NSDecimalNumberExtensions.swift in Sources */, + 65DEE3431BFA0F370043A718 /* Decimal.swift in Sources */, + 65DEE33F1BFA0F370043A718 /* Currency.swift in Sources */, + 65DEE3631BFA0F370043A718 /* Money.swift in Sources */, + 65DEE33B1BFA0F370043A718 /* Autogenerated.swift in Sources */, + 65DEE3571BFA0F370043A718 /* FX.swift in Sources */, + 65DEE35F1BFA0F370043A718 /* Yahoo.swift in Sources */, + 65DEE3531BFA0F370043A718 /* Bitcoin.swift in Sources */, + 65DEE35B1BFA0F370043A718 /* OpenExchangeRates.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -893,14 +917,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84061BEF9B860020FF0E /* BitcoinTests.swift in Sources */, - 65B92B401BE0E72800F82024 /* MoneyTests.swift in Sources */, - 65D305531BE8E8210032D99F /* DecimalTests.swift in Sources */, - 6557F4EA1BEB924D003CD2BF /* NSDecimalTests.swift in Sources */, - 656409421BEAABCA00F82B4D /* FXYahooTests.swift in Sources */, - 65A876F51BE7D1A100E26F22 /* FXTests.swift in Sources */, - 6557F4EE1BEB97AC003CD2BF /* NSDecimalNumberTests.swift in Sources */, - 656409461BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift in Sources */, + 65DD22B61BFA10F20054F62D /* BitcoinTests.swift in Sources */, + 65DD22B91BFA10F20054F62D /* FXTests.swift in Sources */, + 65DD22BD1BFA10F20054F62D /* NSDecimalTests.swift in Sources */, + 65DD22BB1BFA10F20054F62D /* MoneyTests.swift in Sources */, + 65DD22B81BFA10F20054F62D /* FXOpenExchangeRatesTests.swift in Sources */, + 65DD22BA1BFA10F20054F62D /* FXYahooTests.swift in Sources */, + 65DD22BC1BFA10F20054F62D /* NSDecimalNumberTests.swift in Sources */, + 65DD22B71BFA10F20054F62D /* DecimalTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -908,18 +932,18 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84341BEFF11F0020FF0E /* Yahoo.swift in Sources */, - 657C0B111BE10D2700CDB873 /* Currency.swift in Sources */, - 653E84391BEFF12E0020FF0E /* OpenExchangeRates.swift in Sources */, - 65B92B461BE0F93F00F82024 /* Money.swift in Sources */, - 6557F4E71BEB8850003CD2BF /* NSDecimalExtensions.swift in Sources */, - 653E842F1BEFF1050020FF0E /* FX.swift in Sources */, - 65A876E81BE79A9600E26F22 /* Autogenerated.swift in Sources */, - 6557F4DD1BEB8720003CD2BF /* NSDecimalNumberExtensions.swift in Sources */, - 6557F4E21BEB8737003CD2BF /* DecimalNumberType.swift in Sources */, - 653E842B1BEFF1050020FF0E /* Bitcoin.swift in Sources */, - 6557F4D91BEB8720003CD2BF /* Decimal.swift in Sources */, - 657C0B161BE1211900CDB873 /* Support.swift in Sources */, + 65DEE3681BFA0F370043A718 /* Support.swift in Sources */, + 65DEE3481BFA0F370043A718 /* DecimalNumberType.swift in Sources */, + 65DEE34C1BFA0F370043A718 /* NSDecimalExtensions.swift in Sources */, + 65DEE3501BFA0F370043A718 /* NSDecimalNumberExtensions.swift in Sources */, + 65DEE3441BFA0F370043A718 /* Decimal.swift in Sources */, + 65DEE3401BFA0F370043A718 /* Currency.swift in Sources */, + 65DEE3641BFA0F370043A718 /* Money.swift in Sources */, + 65DEE33C1BFA0F370043A718 /* Autogenerated.swift in Sources */, + 65DEE3581BFA0F370043A718 /* FX.swift in Sources */, + 65DEE3601BFA0F370043A718 /* Yahoo.swift in Sources */, + 65DEE3541BFA0F370043A718 /* Bitcoin.swift in Sources */, + 65DEE35C1BFA0F370043A718 /* OpenExchangeRates.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -927,14 +951,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 653E84071BEF9B860020FF0E /* BitcoinTests.swift in Sources */, - 65B92B411BE0E72900F82024 /* MoneyTests.swift in Sources */, - 65D305541BE8E8210032D99F /* DecimalTests.swift in Sources */, - 6557F4EB1BEB924D003CD2BF /* NSDecimalTests.swift in Sources */, - 656409431BEAABCA00F82B4D /* FXYahooTests.swift in Sources */, - 65A876F61BE7D1A100E26F22 /* FXTests.swift in Sources */, - 6557F4EF1BEB97AC003CD2BF /* NSDecimalNumberTests.swift in Sources */, - 656409471BEAB5DC00F82B4D /* FXOpenExchangeRatesTests.swift in Sources */, + 65DD22B51BFA10F10054F62D /* NSDecimalTests.swift in Sources */, + 65DD22B41BFA10F10054F62D /* NSDecimalNumberTests.swift in Sources */, + 65DD22AF1BFA10F10054F62D /* DecimalTests.swift in Sources */, + 65DD22B31BFA10F10054F62D /* MoneyTests.swift in Sources */, + 65DD22B11BFA10F10054F62D /* FXTests.swift in Sources */, + 65DD22B21BFA10F10054F62D /* FXYahooTests.swift in Sources */, + 65DD22B01BFA10F10054F62D /* FXOpenExchangeRatesTests.swift in Sources */, + 65DD22AE1BFA10F10054F62D /* BitcoinTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Money/Autogenerated.swift b/Money/Shared/Autogenerated.swift similarity index 100% rename from Money/Autogenerated.swift rename to Money/Shared/Autogenerated.swift diff --git a/Money/Currency.swift b/Money/Shared/Currency.swift similarity index 100% rename from Money/Currency.swift rename to Money/Shared/Currency.swift diff --git a/Money/Decimal/Decimal.swift b/Money/Shared/Decimal/Decimal.swift similarity index 100% rename from Money/Decimal/Decimal.swift rename to Money/Shared/Decimal/Decimal.swift diff --git a/Money/Decimal/DecimalNumberType.swift b/Money/Shared/Decimal/DecimalNumberType.swift similarity index 89% rename from Money/Decimal/DecimalNumberType.swift rename to Money/Shared/Decimal/DecimalNumberType.swift index 9c6a0bd..fee336c 100644 --- a/Money/Decimal/DecimalNumberType.swift +++ b/Money/Shared/Decimal/DecimalNumberType.swift @@ -83,7 +83,7 @@ public struct DecimalNumberBehavior { A protocol which defines the necessary interface to support decimal number calculations and operators. */ -public protocol DecimalNumberType: SignedNumberType, IntegerLiteralConvertible, FloatLiteralConvertible, CustomStringConvertible { +public protocol DecimalNumberType: Hashable, SignedNumberType, IntegerLiteralConvertible, FloatLiteralConvertible, CustomStringConvertible { typealias DecimalStorageType typealias DecimalNumberBehavior: DecimalNumberBehaviorType @@ -100,6 +100,12 @@ public protocol DecimalNumberType: SignedNumberType, IntegerLiteralConvertible, */ var negative: Self { get } + /// Access an integer value representation + var integerValue: IntegerLiteralType { get } + + /// Access a float value representation + var floatValue: FloatLiteralType { get } + /** Initialize a new `DecimalNumberType` with the underlying storage. This is necessary in order to convert between different decimal number @@ -128,6 +134,15 @@ public protocol DecimalNumberType: SignedNumberType, IntegerLiteralConvertible, @warn_unused_result func add(_: Self) -> Self + /** + Multiply the receive by 10^n + + - parameter n: an `Int` for the 10 power index + - returns: another instance of this type. + */ + @warn_unused_result + func multiplyByPowerOf10(_: Int) -> Self + /** Multiply a matching `DecimalNumberType` with the receiver. @@ -187,27 +202,42 @@ public protocol DecimalNumberType: SignedNumberType, IntegerLiteralConvertible, public extension DecimalNumberType where DecimalStorageType == NSDecimalNumber { /// Flag to indicate if the decimal number is less than zero - public var isNegative: Bool { + var isNegative: Bool { return storage.isNegative } /// The negative of Self. /// - returns: a `_Decimal` - public var negative: Self { + var negative: Self { return Self(storage: storage.negateWithBehaviors(DecimalNumberBehavior.decimalNumberBehaviors)) } + /// Access an integer value representation + var integerValue: Int { + return storage.integerValue + } + + /// Access a float value representation + var floatValue: Double { + return storage.doubleValue + } + /// Text description. - public var description: String { + var description: String { return "\(storage.description)" } + /// Hash value + var hashValue: Int { + return storage.hashValue + } + /** Initialize a new value using a `FloatLiteralType` - parameter floatLiteral: a `FloatLiteralType` for the system, probably `Double`. */ - public init(floatLiteral value: Swift.FloatLiteralType) { + init(floatLiteral value: Swift.FloatLiteralType) { self.init(storage: NSDecimalNumber(floatLiteral: value).decimalNumberByRoundingAccordingToBehavior(DecimalNumberBehavior.decimalNumberBehaviors)) } @@ -216,7 +246,7 @@ public extension DecimalNumberType where DecimalStorageType == NSDecimalNumber { - parameter integerLiteral: a `IntegerLiteralType` for the system, probably `Int`. */ - public init(integerLiteral value: Swift.IntegerLiteralType) { + init(integerLiteral value: Swift.IntegerLiteralType) { switch value { case 0: self.init(storage: NSDecimalNumber.zero()) @@ -234,7 +264,7 @@ public extension DecimalNumberType where DecimalStorageType == NSDecimalNumber { - returns: another instance of this type. */ @warn_unused_result - public func subtract(other: Self) -> Self { + func subtract(other: Self) -> Self { return Self(storage: storage.subtract(other.storage, withBehaviors: DecimalNumberBehavior.decimalNumberBehaviors)) } @@ -245,10 +275,21 @@ public extension DecimalNumberType where DecimalStorageType == NSDecimalNumber { - returns: another instance of this type. */ @warn_unused_result - public func add(other: Self) -> Self { + func add(other: Self) -> Self { return Self(storage: storage.add(other.storage, withBehaviors: DecimalNumberBehavior.decimalNumberBehaviors)) } + /** + Multiply the receive by 10^n + + - parameter n: an `Int` for the 10 power index + - returns: another instance of this type. + */ + @warn_unused_result + func multiplyByPowerOf10(index: Int) -> Self { + return Self(storage: storage.multiplyByPowerOf10(index, withBehaviors: DecimalNumberBehavior.decimalNumberBehaviors)) + } + /** Multiply a matching `DecimalNumberType` with the receiver. @@ -256,7 +297,7 @@ public extension DecimalNumberType where DecimalStorageType == NSDecimalNumber { - returns: another instance of this type. */ @warn_unused_result - public func multiplyBy(other: Self) -> Self { + func multiplyBy(other: Self) -> Self { return Self(storage: storage.multiplyBy(other.storage, withBehaviors: DecimalNumberBehavior.decimalNumberBehaviors)) } @@ -279,7 +320,7 @@ public extension DecimalNumberType where DecimalStorageType == NSDecimalNumber { - returns: another instance of this type. */ @warn_unused_result - public func divideBy(other: Self) -> Self { + func divideBy(other: Self) -> Self { return Self(storage: storage.divideBy(other.storage, withBehaviors: DecimalNumberBehavior.decimalNumberBehaviors)) } @@ -302,7 +343,7 @@ public extension DecimalNumberType where DecimalStorageType == NSDecimalNumber { - returns: another instance of this type. */ @warn_unused_result - public func remainder(other: Self) -> Self { + func remainder(other: Self) -> Self { return Self(storage: storage.remainder(other.storage, withBehaviors: DecimalNumberBehavior.decimalNumberBehaviors)) } } diff --git a/Money/Decimal/NSDecimalExtensions.swift b/Money/Shared/Decimal/NSDecimalExtensions.swift similarity index 100% rename from Money/Decimal/NSDecimalExtensions.swift rename to Money/Shared/Decimal/NSDecimalExtensions.swift diff --git a/Money/Decimal/NSDecimalNumberExtensions.swift b/Money/Shared/Decimal/NSDecimalNumberExtensions.swift similarity index 92% rename from Money/Decimal/NSDecimalNumberExtensions.swift rename to Money/Shared/Decimal/NSDecimalNumberExtensions.swift index bb37faf..5924844 100644 --- a/Money/Decimal/NSDecimalNumberExtensions.swift +++ b/Money/Shared/Decimal/NSDecimalNumberExtensions.swift @@ -78,6 +78,17 @@ extension NSDecimalNumber: Comparable { return decimalNumberByAdding(other, withBehavior: behaviors) } + /** + Multiply the receive by 10^n + + - parameter n: an `Int` for the 10 power index + - returns: another instance of this type. + */ + @warn_unused_result + public func multiplyByPowerOf10(index: Int, withBehaviors behaviors: NSDecimalNumberBehaviors?) -> NSDecimalNumber { + return decimalNumberByMultiplyingByPowerOf10(Int16(index), withBehavior: behaviors) + } + /** Multiply a `NSDecimalNumber` with the receiver. diff --git a/Money/FX/Bitcoin.swift b/Money/Shared/FX/Bitcoin.swift similarity index 100% rename from Money/FX/Bitcoin.swift rename to Money/Shared/FX/Bitcoin.swift diff --git a/Money/FX/FX.swift b/Money/Shared/FX/FX.swift similarity index 100% rename from Money/FX/FX.swift rename to Money/Shared/FX/FX.swift diff --git a/Money/FX/OpenExchangeRates.swift b/Money/Shared/FX/OpenExchangeRates.swift similarity index 100% rename from Money/FX/OpenExchangeRates.swift rename to Money/Shared/FX/OpenExchangeRates.swift diff --git a/Money/FX/Yahoo.swift b/Money/Shared/FX/Yahoo.swift similarity index 100% rename from Money/FX/Yahoo.swift rename to Money/Shared/FX/Yahoo.swift diff --git a/Money/Money.swift b/Money/Shared/Money.swift similarity index 89% rename from Money/Money.swift rename to Money/Shared/Money.swift index d421076..ea11e21 100644 --- a/Money/Money.swift +++ b/Money/Shared/Money.swift @@ -41,8 +41,39 @@ public protocol MoneyType: DecimalNumberType, ValueCoding { /// Access the underlying decimal var decimal: _Decimal { get } + /// Access the underlying minor units + var minorUnits: IntegerLiteralType { get } + /// Initialize the money with a decimal init(_: _Decimal) + + /// Initialize the money with a integer representing minor units + init(minorUnits: IntegerLiteralType) +} + +// MARK: - MoneyType Extension + +public extension MoneyType where DecimalStorageType == NSDecimalNumber { + + var amount: DecimalStorageType { + return storage + } +} + +public extension MoneyType where DecimalStorageType == BankersDecimal.DecimalStorageType { + + /** + Use a `BankersDecimal` to convert the receive into another `MoneyType`. To use this + API the underlying `DecimalStorageType`s between the receiver, the other `MoneyType` + must both be the same a that of `BankersDecimal` (which luckily they are). + + - parameter rate: a `BankersDecimal` representing the rate. + - returns: another `MoneyType` value. + */ + @warn_unused_result + func convertWithRate(rate: BankersDecimal) -> Other { + return multiplyBy(Other(storage: rate.storage)) + } } /** @@ -64,6 +95,12 @@ public struct _Money: MoneyType { /// - returns: the `_Decimal` public let decimal: _Decimal + /// Access the underlying minor units + /// - returns: the `IntegerLiteralType` minor units + public var minorUnits: IntegerLiteralType { + return decimal.multiplyByPowerOf10(Currency.scale).integerValue + } + /// Access the underlying decimal storage. /// - returns: the `_Decimal.DecimalStorageType` public var storage: _Decimal.DecimalStorageType { @@ -90,6 +127,15 @@ public struct _Money: MoneyType { decimal = value } + /** + Initialize the money with a integer representing minor units. + + - parameter minorUnits: a `IntegerLiteralType` + */ + public init(minorUnits: IntegerLiteralType) { + decimal = _Decimal(integerLiteral: minorUnits).multiplyByPowerOf10(Currency.scale * -1) + } + /** Initialize a new value using the underlying decimal storage. At the moment, this is a `NSDecimalNumber`. @@ -117,7 +163,7 @@ public struct _Money: MoneyType { public init(floatLiteral value: FloatLiteralType) { decimal = _Decimal(floatLiteral: value) } - + /** Subtract a matching `_Money` from the receiver. @@ -221,25 +267,6 @@ extension _Money: CustomStringConvertible { } } - -// MARK: - MoneyType Extension - -public extension MoneyType where DecimalStorageType == BankersDecimal.DecimalStorageType { - - /** - Use a `BankersDecimal` to convert the receive into another `MoneyType`. To use this - API the underlying `DecimalStorageType`s between the receiver, the other `MoneyType` - must both be the same a that of `BankersDecimal` (which luckily they are). - - - parameter rate: a `BankersDecimal` representing the rate. - - returns: another `MoneyType` value. - */ - @warn_unused_result - func convertWithRate(rate: BankersDecimal) -> Other { - return multiplyBy(Other(storage: rate.storage)) - } -} - // MARK: - Value Coding extension _Money: ValueCoding { diff --git a/Money/Support.swift b/Money/Shared/Support.swift similarity index 100% rename from Money/Support.swift rename to Money/Shared/Support.swift diff --git a/Money/iOS/ApplePay.swift b/Money/iOS/ApplePay.swift new file mode 100644 index 0000000..ae46720 --- /dev/null +++ b/Money/iOS/ApplePay.swift @@ -0,0 +1,224 @@ +// +// ApplePay.swift +// Money +// +// The MIT License (MIT) +// +// Copyright (c) 2015 Daniel Thorpe +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +import Foundation +import PassKit +import ValueCoding + +// MARK: - Apple Pay equivalent types + +/** + + # PaymentSummaryItemType + + An equivalent `PKPaymentSummaryItemType` enum. While defined + for iOS 8, usage will only have an impact on iOS 9. + + - see: PKPaymentSummaryItemType + */ +public enum PaymentSummaryItemType: Int { + case Final = 1, Pending +} + +/** + + # PaymentSummaryItem + + A value type to represent a payment line item. It is generic over the + `MoneyType` of the item cost. Other properties are a label and type. + + The money type must use `NSDecimalNumber` storage type, and correctly + conform to `ValueCoding`. + */ +public struct PaymentSummaryItem: Hashable, ValueCoding { + + /// The ValueCoding Coder type + public typealias Coder = PaymentSummaryItemCoder + + /** + A label for the item. + - returns: a `String` value + */ + public let label: String + + /** + The cost of the item. + - returns: a `Cost` value + */ + public let cost: Cost + + /** + The cost type of the item. See docs for + `PKPaymentSummaryItemType`. + - returns: a `PaymentSummaryItemType` value + */ + public let type: PaymentSummaryItemType + + internal var amount: Cost.DecimalStorageType { + return cost.amount + } + + public var hashValue: Int { + return cost.hashValue ^ (label.hashValue ^ type.hashValue) + } + + /** + Create a new `PaymentSummaryItem` with a cost, label and type. + + - discussion: As per the documentation of `PKPaymentSummaryItem` use + a `.Pending` item type, for when the final value is not known + yet, e.g. a taxi fare. In which case, the cost should be zero. On iOS + 9 we will automaticaly set the cost to zero for pending type. + + - parameter label: the value for the `label` property. + - parameter cost: the value for the `cost` property. + - parameter type: the value for the `type` property. + - returns: a summary item with a given label, cost and type. + */ + public init(label: String, cost: Cost, type: PaymentSummaryItemType = .Final) { + self.label = label + self.type = type + switch type { + case .Final: + self.cost = cost + case .Pending: + self.cost = 0 + } + } +} + +extension PaymentSummaryItem { + + /** + Immutable setter for `label` property + - parameter newLabel: the value for the `label` property in an item copy + - returns: a summary item with a new label value, and previously set cost and type. + */ + public func setLabel(newLabel: String) -> PaymentSummaryItem { + return PaymentSummaryItem(label: newLabel, cost: cost, type: type) + } + + /** + Immutable setter for `cost` property + - parameter newCost: the value for the `cost` property in an item copy + - returns: a summary item with a new cost value, and previously set label and type. + */ + public func setCost(newCost: Cost) -> PaymentSummaryItem { + return PaymentSummaryItem(label: label, cost: newCost, type: type) + } + + /** + Immutable setter for `type` property + - parameter newType: the value for the `type` property in an item copy + - returns: a summary item with a new type value, and previously set label and cost. + */ + public func setType(newType: PaymentSummaryItemType) -> PaymentSummaryItem { + return PaymentSummaryItem(label: label, cost: cost, type: newType) + } +} + +/** + Coding adaptor for `PaymentSummaryItem`. +*/ +public final class PaymentSummaryItemCoder: NSObject, NSCoding, CodingType { + + public let value: PaymentSummaryItem + + public required init(_ v: PaymentSummaryItem) { + value = v + } + + public init?(coder aDecoder: NSCoder) { + let cost = Cost.decode(aDecoder.decodeObjectForKey("cost")) + let label = aDecoder.decodeObjectForKey("label") as? String + let type = PaymentSummaryItemType(rawValue: aDecoder.decodeIntegerForKey("type")) + value = PaymentSummaryItem(label: label!, cost: cost!, type: type!) + } + + public func encodeWithCoder(aCoder: NSCoder) { + aCoder.encodeObject(value.label, forKey: "label") + aCoder.encodeObject(value.cost.encoded, forKey: "cost") + aCoder.encodeInteger(value.type.rawValue, forKey: "type") + } +} + +// MARK: - Apple Pay type extensions + +@available(iOS 9.0, iOSApplicationExtension 9.0, *) +internal extension PKPaymentSummaryItemType { + + init(paymentSummaryItemType: PaymentSummaryItemType) { + switch paymentSummaryItemType { + case .Final: + self = .Final + case .Pending: + self = .Pending + } + } +} + +internal extension PKPaymentSummaryItem { + + convenience init(paymentSummaryItem: PaymentSummaryItem) { + self.init() + amount = paymentSummaryItem.amount + label = paymentSummaryItem.label + if #available(iOS 9.0, iOSApplicationExtension 9.0, *) { + type = PKPaymentSummaryItemType(paymentSummaryItemType: paymentSummaryItem.type) + } + } +} + +public extension PKPaymentRequest { + + /** + Create a payment request with a sequence of `PaymentSummaryItem`s. The + currency code will automatically be set. + + As per the guidlines the total cost is calculated and appended to the + end of the list, using your company or seller name as the label. + + - see: [guideline](https://developer.apple.com/library/ios/ApplePay_Guide/CreateRequest.html) + + - parameter items: an array of `PaymentSummaryItem` values. + - parameter sellerName: a `String` which is used in the total cost summary item. + - returns: a `PKPaymentRequest` which has its payment summary items and currency code set. + */ + convenience init(var items: [PaymentSummaryItem], sellerName: String) { + self.init() + currencyCode = Cost.Currency.code + let total = items.map { $0.cost }.reduce(0, combine: +) + items.append(PaymentSummaryItem(label: sellerName, cost: total)) + paymentSummaryItems = items.map { PKPaymentSummaryItem(paymentSummaryItem: $0) } + } +} + +// MARK: - Equality + +public func ==(lhs: PaymentSummaryItem, rhs: PaymentSummaryItem) -> Bool { + return lhs.cost == rhs.cost && lhs.label == rhs.label && lhs.type == rhs.type +} + diff --git a/README.md b/README.md index 33e7243..3a953aa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![](header.png) -[![Build status](https://badge.buildkite.com/265eb9670a2ef6b73eebf37769a8455c402509f71f09c4f51e.svg)](https://buildkite.com/blindingskies/money?branch=development) +[![Build status](https://badge.buildkite.com/265eb9670a2ef6b73eebf37769a8455c402509f71f09c4f51e.svg?branch=development)](https://buildkite.com/blindingskies/money?branch=development) [![codecov.io](https://codecov.io/github/danthorpe/Money/coverage.svg?branch=development&token=gI70muNOjA)](https://codecov.io/github/danthorpe/Money?branch=development) [![Cocoapods Compatible](https://img.shields.io/cocoapods/v/Money.svg)](https://img.shields.io/cocoapods/v/Money.svg) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) @@ -63,6 +63,43 @@ let money = pounds + euros Of course, `Money` supports the usual suspects of decimal arithmetic operators, so you can add, subtract, multiply, divide values of the same type, and values with `Int` and `Double` with the expected limitations. +## Minor Units + +`Money` can be initialized using the smallest units of currency: + +```swift +let dollars = USD(minorUnits: 3250) +let yuen = JPY(minorUnits: 3000) +let bitcoin = BTC(minorUnits: 5000) + +print(“You have \(dollars), \(yuen) and \(bitcoin) Satoshis”) +``` + +> You have $ 32.50, JP¥ 3,000 and 0.00005 Satoshis + +##  Pay + +On iOS (not watchOS, tvOS or OS X), there is support in Money for using `Money` with  Pay. + +Create a `PaymentSummaryItem` in lieu of `PKPaymentSummaryItem` with a suitable `MoneyType`: + +```swift +import PassKit + +typealias DollarItem = PaymentSummaryItem + +let items = [ + DollarItem(label: "Something fancy.", cost: 9.99), + DollarItem(label: "Something less fancy.", cost: 5.99) +] + +let request = PKPaymentRequest(items: items, sellerName: "Acme, Inc.") +``` + +The convenience initializer receives an array of `PaymentSummaryItem` values and a seller name. It sets the currency code and payment summary items. Following the  Pay guidelines, will append a total summary item using the provided seller name. + +`PaymentSummaryItem` conforms to `Hashable` and [`ValueCoding`](https://github.com/danthorpe/ValueCoding). + ## Foreign Currency Exchange (FX) To represent a foreign exchange transaction, i.e. converting `USD` to `EUR`, use a FX service provider. There is built in support for [Yahoo](https://finance.yahoo.com/currency-converter/#from=USD;to=EUR;amt=1) and [OpenExchangeRates.org](https://openexchangerates.org) services. But it’s possible for consumers to create their own too. diff --git a/Supporting Files/Money.xcconfig b/Supporting Files/Money.xcconfig index f8bd0c3..850e0bd 100644 --- a/Supporting Files/Money.xcconfig +++ b/Supporting Files/Money.xcconfig @@ -6,7 +6,7 @@ // // -MONEY_VERSION = 1.2.1 +MONEY_VERSION = 1.3.0 APPLICATION_EXTENSION_API_ONLY = YES INFOPLIST_FILE = $(SRCROOT)/Supporting Files/Info.plist diff --git a/Tests/BitcoinTests.swift b/Tests/Shared/BitcoinTests.swift similarity index 100% rename from Tests/BitcoinTests.swift rename to Tests/Shared/BitcoinTests.swift diff --git a/Tests/DVR Cassettes/CEX.IO BTCUSD.json b/Tests/Shared/DVR Cassettes/CEX.IO BTCUSD.json similarity index 100% rename from Tests/DVR Cassettes/CEX.IO BTCUSD.json rename to Tests/Shared/DVR Cassettes/CEX.IO BTCUSD.json diff --git a/Tests/DVR Cassettes/CEX.IO USDBTC.json b/Tests/Shared/DVR Cassettes/CEX.IO USDBTC.json similarity index 100% rename from Tests/DVR Cassettes/CEX.IO USDBTC.json rename to Tests/Shared/DVR Cassettes/CEX.IO USDBTC.json diff --git a/Tests/DVR Cassettes/OpenExchangeRates.org USDEUR.json b/Tests/Shared/DVR Cassettes/OpenExchangeRates.org USDEUR.json similarity index 100% rename from Tests/DVR Cassettes/OpenExchangeRates.org USDEUR.json rename to Tests/Shared/DVR Cassettes/OpenExchangeRates.org USDEUR.json diff --git a/Tests/DVR Cassettes/Yahoo GBPUSD.json b/Tests/Shared/DVR Cassettes/Yahoo GBPUSD.json similarity index 100% rename from Tests/DVR Cassettes/Yahoo GBPUSD.json rename to Tests/Shared/DVR Cassettes/Yahoo GBPUSD.json diff --git a/Tests/DecimalTests.swift b/Tests/Shared/DecimalTests.swift similarity index 86% rename from Tests/DecimalTests.swift rename to Tests/Shared/DecimalTests.swift index 04a5607..3db0f67 100644 --- a/Tests/DecimalTests.swift +++ b/Tests/Shared/DecimalTests.swift @@ -19,6 +19,19 @@ class DecimalTests: XCTestCase { } } +class DecimalAccessorTests: DecimalTests { + + func test__decimal_integer_value() { + decimal = 10.00 + XCTAssertEqual(decimal.integerValue, 10) + } + + func test__decimal_float_value() { + decimal = 10.00 + XCTAssertEqual(decimal.floatValue, 10.0) + } +} + class DecimalDescriptionTests: DecimalTests { func test__decimal_decription1() { diff --git a/Tests/FXOpenExchangeRatesTests.swift b/Tests/Shared/FXOpenExchangeRatesTests.swift similarity index 100% rename from Tests/FXOpenExchangeRatesTests.swift rename to Tests/Shared/FXOpenExchangeRatesTests.swift diff --git a/Tests/FXTests.swift b/Tests/Shared/FXTests.swift similarity index 100% rename from Tests/FXTests.swift rename to Tests/Shared/FXTests.swift diff --git a/Tests/FXYahooTests.swift b/Tests/Shared/FXYahooTests.swift similarity index 100% rename from Tests/FXYahooTests.swift rename to Tests/Shared/FXYahooTests.swift diff --git a/Tests/MoneyTests.swift b/Tests/Shared/MoneyTests.swift similarity index 92% rename from Tests/MoneyTests.swift rename to Tests/Shared/MoneyTests.swift index d80f506..f7867eb 100644 --- a/Tests/MoneyTests.swift +++ b/Tests/Shared/MoneyTests.swift @@ -294,4 +294,24 @@ class MoneyValueCodingTests: XCTestCase { } } +class MoneyMinorUnitTests: XCTestCase { + + func test__money_with_USD_minor_amount_equality() { + XCTAssertEqual(USD(minorUnits: 3250), 32.50) + } + + func test__money_with_JPY_minor_amount_equality() { + XCTAssertEqual(JPY(minorUnits: 2170), 2170) + } + + func test__money_with_BTC_minor_amount_equality() { + XCTAssertEqual(BTC(minorUnits: 3000), 0.00003) + } + + func test__money_access_minor_units() { + XCTAssertEqual(JPY(integerLiteral: 1).minorUnits, 1) + XCTAssertEqual(USD(integerLiteral: 1).minorUnits, 100) + XCTAssertEqual(BTC(integerLiteral: 1).minorUnits, 1_0000_0000) + } +} diff --git a/Tests/NSDecimalNumberTests.swift b/Tests/Shared/NSDecimalNumberTests.swift similarity index 100% rename from Tests/NSDecimalNumberTests.swift rename to Tests/Shared/NSDecimalNumberTests.swift diff --git a/Tests/NSDecimalTests.swift b/Tests/Shared/NSDecimalTests.swift similarity index 100% rename from Tests/NSDecimalTests.swift rename to Tests/Shared/NSDecimalTests.swift diff --git a/Tests/Troll.png b/Tests/Shared/Troll.png similarity index 100% rename from Tests/Troll.png rename to Tests/Shared/Troll.png diff --git a/Tests/iOS/ApplePayTests.swift b/Tests/iOS/ApplePayTests.swift new file mode 100644 index 0000000..af5baa1 --- /dev/null +++ b/Tests/iOS/ApplePayTests.swift @@ -0,0 +1,116 @@ +// +// ApplePayTests.swift +// Money +// +// Created by Daniel Thorpe on 16/11/2015. +// +// + +import XCTest +import PassKit +@testable import Money + +class ApplePayTests: XCTestCase { + + var item: PaymentSummaryItem! + var items: Set> = [] + + override func setUp() { + super.setUp() + item = PaymentSummaryItem(label: "iPad Pro, 32GB with WiFi", cost: 679, type: .Final) + items.insert(item) + } +} + +class PaymentSummaryItemTests: ApplePayTests { + + func test__init__sets_money() { + XCTAssertEqual(item.cost, 679) + } + + func test__init__sets_label() { + XCTAssertEqual(item.label, "iPad Pro, 32GB with WiFi") + } + + func test__init__sets_type() { + XCTAssertEqual(item.type, PaymentSummaryItemType.Final) + } + + func test__set_new_money__sets_money() { + item = item.setCost(799) + XCTAssertEqual(item.cost, 799) + XCTAssertEqual(item.label, "iPad Pro, 32GB with WiFi") + XCTAssertEqual(item.type, PaymentSummaryItemType.Final) + } + + func test__set_new_label__sets_label() { + item = item.setLabel("iPad Pro, 128GB with WiFi") + XCTAssertEqual(item.cost, 679) + XCTAssertEqual(item.label, "iPad Pro, 128GB with WiFi") + XCTAssertEqual(item.type, PaymentSummaryItemType.Final) + } + + func test__set_new_type__sets_type() { + item = item.setType(.Pending) + XCTAssertEqual(item.cost, 0) + XCTAssertEqual(item.label, "iPad Pro, 32GB with WiFi") + XCTAssertEqual(item.type, PaymentSummaryItemType.Pending) + } + + func test__equality() { + XCTAssertEqual(item, PaymentSummaryItem(label: "iPad Pro, 32GB with WiFi", cost: 679, type: .Final)) + XCTAssertNotEqual(item, PaymentSummaryItem(label: "iPad Pro, 128GB with WiFi", cost: 799, type: .Final)) + } +} + +class PaymentSummaryItemCodingTests: ApplePayTests { + + func archiveEncoded() -> NSData { + return NSKeyedArchiver.archivedDataWithRootObject(item.encoded) + } + + func unarchive(archive: NSData) -> PaymentSummaryItem? { + return PaymentSummaryItem.decode(NSKeyedUnarchiver.unarchiveObjectWithData(archive)) + } + + func test__encode_decode() { + XCTAssertEqual(unarchive(archiveEncoded()), item) + } +} + +class PKPaymentSummaryItemTypeTests: ApplePayTests { + + func test__init__final() { + let type = PKPaymentSummaryItemType(paymentSummaryItemType: .Final) + XCTAssertEqual(type, PKPaymentSummaryItemType.Final) + } + + func test__init__pending() { + let type = PKPaymentSummaryItemType(paymentSummaryItemType: .Pending) + XCTAssertEqual(type, PKPaymentSummaryItemType.Pending) + } +} + +class PKPaymentSummaryItemTests: ApplePayTests { + + func test__init__with_item() { + let summaryItem = PKPaymentSummaryItem(paymentSummaryItem: item) + XCTAssertEqual(summaryItem.amount, NSDecimalNumber(integer: 679)) + XCTAssertEqual(summaryItem.label, "iPad Pro, 32GB with WiFi") + XCTAssertEqual(summaryItem.type, PKPaymentSummaryItemType.Final) + } +} + +class PKPaymentRequestTests: ApplePayTests { + + func test__init__with_items() { + items.insert(PaymentSummaryItem(label: "iPad Pro, 128GB with WiFi", cost: 799, type: .Final)) + items.insert(PaymentSummaryItem(label: "iPad Pro, 128GB with WiFi + Cellular", cost: 899, type: .Final)) + let request = PKPaymentRequest(items: Array(items), sellerName: "Acme. Inc") + + XCTAssertEqual(request.currencyCode, GBP.Currency.code) + XCTAssertEqual(request.paymentSummaryItems.count, 4) + XCTAssertEqual(request.paymentSummaryItems.last!.label, "Acme. Inc") + XCTAssertEqual(request.paymentSummaryItems.last!.amount, items.map { $0.cost }.reduce(0, combine: +).amount) + } +}