From f69f4a12aed441aa7667481b276b30b761a293da Mon Sep 17 00:00:00 2001 From: Aliona Date: Wed, 11 Jul 2018 19:42:08 +0300 Subject: [PATCH] Move string extension to a separate file --- LeadKit.xcodeproj/project.pbxproj | 10 +++++ .../String/String+ConvertToHost.swift | 38 +++++++++++++++++++ .../NetworkServiceConfiguration.swift | 11 ------ 3 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 Sources/Extensions/String/String+ConvertToHost.swift diff --git a/LeadKit.xcodeproj/project.pbxproj b/LeadKit.xcodeproj/project.pbxproj index 478e16ee..8041c081 100644 --- a/LeadKit.xcodeproj/project.pbxproj +++ b/LeadKit.xcodeproj/project.pbxproj @@ -19,6 +19,10 @@ 3622F5E220E25883009DED94 /* SeparatorRowBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = A66428A81F8A655600C6308D /* SeparatorRowBox.swift */; }; 36977763200CF12100ED9C6E /* UITableView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36DAAF502007CC920090BE0D /* UITableView+Extensions.swift */; }; 36DAAF512007CC920090BE0D /* UITableView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36DAAF502007CC920090BE0D /* UITableView+Extensions.swift */; }; + 36FE777020F669E300284C09 /* String+ConvertToHost.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FE776F20F669E300284C09 /* String+ConvertToHost.swift */; }; + 36FE777120F669E300284C09 /* String+ConvertToHost.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FE776F20F669E300284C09 /* String+ConvertToHost.swift */; }; + 36FE777220F669E300284C09 /* String+ConvertToHost.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FE776F20F669E300284C09 /* String+ConvertToHost.swift */; }; + 36FE777320F669E300284C09 /* String+ConvertToHost.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FE776F20F669E300284C09 /* String+ConvertToHost.swift */; }; 40F118471F8FEF97004AADAF /* AppearanceConfigurable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40F118461F8FEF97004AADAF /* AppearanceConfigurable.swift */; }; 40F118491F8FF223004AADAF /* TableRow+AppearanceExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40F118481F8FF223004AADAF /* TableRow+AppearanceExtension.swift */; }; 67051ADB1EBC7C36008EADC0 /* SpinnerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67051ADA1EBC7C36008EADC0 /* SpinnerView.swift */; }; @@ -632,6 +636,7 @@ 287AC0683207753A363152CB /* Pods_LeadKit_watchOSTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LeadKit_watchOSTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2BD6FE790236CFF8D2CD505E /* Pods-LeadKit-LeadKit iOS Extensions.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKit-LeadKit iOS Extensions.release.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKit-LeadKit iOS Extensions/Pods-LeadKit-LeadKit iOS Extensions.release.xcconfig"; sourceTree = ""; }; 36DAAF502007CC920090BE0D /* UITableView+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+Extensions.swift"; sourceTree = ""; }; + 36FE776F20F669E300284C09 /* String+ConvertToHost.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+ConvertToHost.swift"; sourceTree = ""; }; 381DF859FC4E26D499123014 /* Pods-LeadKit iOS ExtensionsTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKit iOS ExtensionsTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKit iOS ExtensionsTests/Pods-LeadKit iOS ExtensionsTests.release.xcconfig"; sourceTree = ""; }; 3C88ED8C9373F85C06697849 /* Pods_LeadKit_iOS_ExtensionsTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LeadKit_iOS_ExtensionsTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 40F118461F8FEF97004AADAF /* AppearanceConfigurable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppearanceConfigurable.swift; sourceTree = ""; }; @@ -1090,6 +1095,7 @@ A676AE471F97D28A001F9214 /* String+Extensions.swift */, 671461FC1EB3396E00EAB194 /* String+Localization.swift */, A6F32C071F6EBDAA00AC08EE /* String+LocalizedComponent.swift */, + 36FE776F20F669E300284C09 /* String+ConvertToHost.swift */, ); path = String; sourceTree = ""; @@ -2613,6 +2619,7 @@ 6714626C1EB3396E00EAB194 /* XibView.swift in Sources */, 67274778206CD0B500725163 /* UILabel+ViewTextConfiguration.swift in Sources */, 67ED2BE520B44F4300508B3E /* InitializableView+DefaultImplementation.swift in Sources */, + 36FE777020F669E300284C09 /* String+ConvertToHost.swift in Sources */, 6774529220625D170024EEEF /* GeneralDataLoadingModel.swift in Sources */, 6714637C1EB3396E00EAB194 /* ImageDrawingOperation.swift in Sources */, 671463341EB3396E00EAB194 /* DrawingOperation.swift in Sources */, @@ -2718,6 +2725,7 @@ 6714626A1EB3396E00EAB194 /* NetworkService.swift in Sources */, 671AD26E206A3E8500EAF887 /* Array+TotalCountCursorListingResult.swift in Sources */, 673CF4132063ABD100C329F6 /* GeneralDataLoadingState+Extensions.swift in Sources */, + 36FE777220F669E300284C09 /* String+ConvertToHost.swift in Sources */, 6713C24320AF189100875921 /* RxNetworkOperationModel.swift in Sources */, 671462921EB3396E00EAB194 /* CGImage+Crop.swift in Sources */, 6741C41120EAC88800418D08 /* GeneralDataLoadingViewModel+Extensions.swift in Sources */, @@ -2844,6 +2852,7 @@ 671AD26F206A3E8500EAF887 /* Array+TotalCountCursorListingResult.swift in Sources */, 67955D55206D216B0021ECD2 /* Singleton.swift in Sources */, EFBE57D31EC35EF20040E00A /* Array+Extensions.swift in Sources */, + 36FE777320F669E300284C09 /* String+ConvertToHost.swift in Sources */, 67FD4385206BD24B005B0C64 /* EqutableOptionalArray.swift in Sources */, 67CAF8AE2065189C00527085 /* NetworkService+ActivityIndicator.swift in Sources */, 6714638B1EB3396E00EAB194 /* RoundDrawingOperation.swift in Sources */, @@ -3039,6 +3048,7 @@ 671463711EB3396E00EAB194 /* ApiRequestParameters.swift in Sources */, 3622F5DB20E24F99009DED94 /* Array+SeparatorRowBoxExtensions.swift in Sources */, 671462ED1EB3396E00EAB194 /* UIImage+Extensions.swift in Sources */, + 36FE777120F669E300284C09 /* String+ConvertToHost.swift in Sources */, 6714636D1EB3396E00EAB194 /* XibNameProtocol.swift in Sources */, 673CF42D2063DE5900C329F6 /* TextPlaceholderView.swift in Sources */, 6713C24220AF189100875921 /* RxNetworkOperationModel.swift in Sources */, diff --git a/Sources/Extensions/String/String+ConvertToHost.swift b/Sources/Extensions/String/String+ConvertToHost.swift new file mode 100644 index 00000000..1232911c --- /dev/null +++ b/Sources/Extensions/String/String+ConvertToHost.swift @@ -0,0 +1,38 @@ +// +// Copyright (c) 2018 Touch Instinct +// +// 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 + +extension String { + + /** + Extracts host from strings that can be converted to URL. + Causes assertionFailure if string cannot be converted. + */ + var asHost: String { + guard let host = URL(string: self)?.host else { + assertionFailure("Cannot detect host for base URL") + return "" + } + return host + } +} diff --git a/Sources/Structures/NetworkService/NetworkServiceConfiguration.swift b/Sources/Structures/NetworkService/NetworkServiceConfiguration.swift index 8f546078..4fc70091 100644 --- a/Sources/Structures/NetworkService/NetworkServiceConfiguration.swift +++ b/Sources/Structures/NetworkService/NetworkServiceConfiguration.swift @@ -66,17 +66,6 @@ public struct NetworkServiceConfiguration { } } -extension String { - - var asHost: String { - guard let host = URL(string: self)?.host else { - assertionFailure("Cannot detect host for base URL") - return "" - } - return host - } -} - public extension NetworkServiceConfiguration { /// SessionManager constructed with given parameters (session configuration and trust policies)