Skip to content

Commit 2477bf5

Browse files
committed
Add ArrayHasLessThanOrEqualToOneObject
1 parent c95cfd8 commit 2477bf5

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

ValueTransformers.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
05D3737220ED96D6007FE14A /* ValueTransformersTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05D3737120ED96D6007FE14A /* ValueTransformersTests.m */; };
2727
05D3737420ED96D6007FE14A /* ValueTransformers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05CD4ABA20ED7CD100DBDE99 /* ValueTransformers.framework */; };
2828
05E4C883271F142600A07D92 /* BytesToString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05E4C882271F142600A07D92 /* BytesToString.swift */; };
29+
36BF01EF2E2536ED005C1DFD /* ArrayHasLessThanOrEqualToOneObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36BF01EE2E2536E6005C1DFD /* ArrayHasLessThanOrEqualToOneObject.swift */; };
2930
E295FBA32A65426C003C5F68 /* DateToString.swift in Sources */ = {isa = PBXBuildFile; fileRef = E295FBA22A65426C003C5F68 /* DateToString.swift */; };
3031
EF0F53592715DB6100BE981A /* SetIsEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF0F53582715DB6100BE981A /* SetIsEmpty.swift */; };
3132
EF0F535B2715DD1A00BE981A /* SetIsNotEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF0F535A2715DD1900BE981A /* SetIsNotEmpty.swift */; };
@@ -110,6 +111,7 @@
110111
05E4C880271F141400A07D92 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
111112
05E4C881271F141400A07D92 /* CODE_OF_CONDUCT.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CODE_OF_CONDUCT.md; sourceTree = "<group>"; };
112113
05E4C882271F142600A07D92 /* BytesToString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BytesToString.swift; sourceTree = "<group>"; };
114+
36BF01EE2E2536E6005C1DFD /* ArrayHasLessThanOrEqualToOneObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArrayHasLessThanOrEqualToOneObject.swift; sourceTree = "<group>"; };
113115
E295FBA22A65426C003C5F68 /* DateToString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateToString.swift; sourceTree = "<group>"; };
114116
EF0F53582715DB6100BE981A /* SetIsEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetIsEmpty.swift; sourceTree = "<group>"; };
115117
EF0F535A2715DD1900BE981A /* SetIsNotEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetIsNotEmpty.swift; sourceTree = "<group>"; };
@@ -259,6 +261,7 @@
259261
0509122720E55CB5009EF90C /* ValueTransformers */ = {
260262
isa = PBXGroup;
261263
children = (
264+
36BF01EE2E2536E6005C1DFD /* ArrayHasLessThanOrEqualToOneObject.swift */,
262265
05D3734920ED91E5007FE14A /* ArrayHasMoreThanOneObject.swift */,
263266
05D3734820ED91E5007FE14A /* ArrayHasOnlyOneObject.swift */,
264267
05D3734420ED91E5007FE14A /* ArrayIsEmpty.swift */,
@@ -446,6 +449,7 @@
446449
05D3736320ED91E5007FE14A /* ArrayHasOnlyOneObject.swift in Sources */,
447450
05D3736020ED91E5007FE14A /* StringIsEmpty.swift in Sources */,
448451
E295FBA32A65426C003C5F68 /* DateToString.swift in Sources */,
452+
36BF01EF2E2536ED005C1DFD /* ArrayHasLessThanOrEqualToOneObject.swift in Sources */,
449453
05E4C883271F142600A07D92 /* BytesToString.swift in Sources */,
450454
);
451455
runOnlyForDeploymentPostprocessing = 0;
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2025, DigiDNA
3+
* All rights reserved
4+
*
5+
* Unauthorised copying of this copyrighted work, via any medium is strictly
6+
* prohibited.
7+
* Proprietary and confidential.
8+
******************************************************************************/
9+
10+
import Foundation
11+
12+
@objc( VTArrayHasLessThanOrEqualToOneObject )
13+
public class ArrayHasLessThanOrEqualToOneObject: ValueTransformer
14+
{
15+
@objc
16+
public override class func transformedValueClass() -> AnyClass
17+
{
18+
return NSNumber.self
19+
}
20+
21+
@objc
22+
public override class func allowsReverseTransformation() -> Bool
23+
{
24+
return false
25+
}
26+
27+
@objc
28+
public override func transformedValue( _ value: Any? ) -> Any?
29+
{
30+
guard let array = value as? NSArray
31+
else
32+
{
33+
return NSNumber( booleanLiteral: false )
34+
}
35+
36+
return array.count <= 1 ? NSNumber( booleanLiteral: true ) : NSNumber( booleanLiteral: false )
37+
}
38+
}

0 commit comments

Comments
 (0)