Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🧹 Remove redundant switch cases. #84

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions TinyConstraints.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
A932CB751F78081B00401861 /* TinyConstraints+superview.swift in Sources */ = {isa = PBXBuildFile; fileRef = A932CB741F78081B00401861 /* TinyConstraints+superview.swift */; };
A97552CE2128478300C1EC7E /* TinyEdgeInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = A97552CD2128478300C1EC7E /* TinyEdgeInsets.swift */; };
A9D467D11E6777CA00C331FA /* Abstraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9D467D01E6777CA00C331FA /* Abstraction.swift */; };
C0ED0A912357405000A20B2B /* NSLayoutDimension+ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0ED0A902357405000A20B2B /* NSLayoutDimension+ConstraintRelation.swift */; };
C0ED0A93235742E400A20B2B /* NSLayoutAxisAnchor+ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0ED0A92235742E400A20B2B /* NSLayoutAxisAnchor+ConstraintRelation.swift */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
Expand All @@ -30,6 +32,8 @@
A932CB741F78081B00401861 /* TinyConstraints+superview.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "TinyConstraints+superview.swift"; sourceTree = "<group>"; };
A97552CD2128478300C1EC7E /* TinyEdgeInsets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TinyEdgeInsets.swift; sourceTree = "<group>"; };
A9D467D01E6777CA00C331FA /* Abstraction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Abstraction.swift; sourceTree = "<group>"; };
C0ED0A902357405000A20B2B /* NSLayoutDimension+ConstraintRelation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSLayoutDimension+ConstraintRelation.swift"; sourceTree = "<group>"; };
C0ED0A92235742E400A20B2B /* NSLayoutAxisAnchor+ConstraintRelation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSLayoutAxisAnchor+ConstraintRelation.swift"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -80,6 +84,8 @@
2DD9870C1E4DBB6A002F80D6 /* TinyConstraints.swift */,
A932CB741F78081B00401861 /* TinyConstraints+superview.swift */,
A97552CD2128478300C1EC7E /* TinyEdgeInsets.swift */,
C0ED0A902357405000A20B2B /* NSLayoutDimension+ConstraintRelation.swift */,
C0ED0A92235742E400A20B2B /* NSLayoutAxisAnchor+ConstraintRelation.swift */,
);
path = Classes;
sourceTree = "<group>";
Expand Down Expand Up @@ -174,8 +180,10 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C0ED0A912357405000A20B2B /* NSLayoutDimension+ConstraintRelation.swift in Sources */,
A97552CE2128478300C1EC7E /* TinyEdgeInsets.swift in Sources */,
2DD987111E4DBB6A002F80D6 /* TinyConstraints.swift in Sources */,
C0ED0A93235742E400A20B2B /* NSLayoutAxisAnchor+ConstraintRelation.swift in Sources */,
A932CB751F78081B00401861 /* TinyConstraints+superview.swift in Sources */,
2DD987101E4DBB6A002F80D6 /* Stack.swift in Sources */,
2DD9870F1E4DBB6A002F80D6 /* Constraints.swift in Sources */,
Expand Down
1 change: 0 additions & 1 deletion TinyConstraints/Classes/Abstraction.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,3 @@ import Foundation

public typealias TinyEdgeInsets = UIEdgeInsets
#endif

1 change: 0 additions & 1 deletion TinyConstraints/Classes/Constraints.swift
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,3 @@ public extension Constraint {
}
}
#endif

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//
// NSLayoutAxisAnchor+ConstraintRelation.swift
// TinyConstraints
//
// Created by Joan Disho on 16.10.19.
// Copyright © 2019 Robert-Hein Hooijmans. All rights reserved.
//

import Foundation

#if os(OSX)
import AppKit
#else
import UIKit
#endif

internal extension NSLayoutXAxisAnchor {
func constraint(to anchor: NSLayoutXAxisAnchor, relation: ConstraintRelation) -> NSLayoutConstraint {
switch relation {
case .equal: return constraint(equalTo: anchor)
case .equalOrLess: return constraint(lessThanOrEqualTo: anchor)
case .equalOrGreater: return constraint(greaterThanOrEqualTo: anchor)
}
}
}

internal extension NSLayoutYAxisAnchor {
func constraint(to anchor: NSLayoutYAxisAnchor, relation: ConstraintRelation) -> NSLayoutConstraint {
switch relation {
case .equal: return constraint(equalTo: anchor)
case .equalOrLess: return constraint(lessThanOrEqualTo: anchor)
case .equalOrGreater: return constraint(greaterThanOrEqualTo: anchor)
}
}
}
33 changes: 33 additions & 0 deletions TinyConstraints/Classes/NSLayoutDimension+ConstraintRelation.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//
// NSLayoutDimension+ConstraintRelation.swift
// TinyConstraints
//
// Created by Joan Disho on 16.10.19.
// Copyright © 2019 Robert-Hein Hooijmans. All rights reserved.
//

import Foundation

#if os(OSX)
import AppKit
#else
import UIKit
#endif

internal extension NSLayoutDimension {
func constraint(to dimension: NSLayoutDimension, multiplier: CGFloat, offset: CGFloat, relation: ConstraintRelation) -> NSLayoutConstraint {
switch relation {
case .equal: return constraint(equalTo: dimension, multiplier: multiplier, constant: offset)
case .equalOrLess: return constraint(lessThanOrEqualTo: dimension, multiplier: multiplier, constant: offset)
case .equalOrGreater: return constraint(greaterThanOrEqualTo: dimension, multiplier: multiplier, constant: offset)
}
}

func constraint(toConstant constant: CGFloat, relation: ConstraintRelation) -> NSLayoutConstraint {
switch relation {
case .equal: return constraint(equalToConstant: constant)
case .equalOrLess: return constraint(lessThanOrEqualToConstant: constant)
case .equalOrGreater: return constraint(greaterThanOrEqualToConstant: constant)
}
}
}
70 changes: 10 additions & 60 deletions TinyConstraints/Classes/TinyConstraints.swift
Original file line number Diff line number Diff line change
Expand Up @@ -106,23 +106,13 @@ public extension Constrainable {
@discardableResult
func width(_ width: CGFloat, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return widthAnchor.constraint(equalToConstant: width).with(priority).set(isActive)
case .equalOrLess: return widthAnchor.constraint(lessThanOrEqualToConstant: width).with(priority).set(isActive)
case .equalOrGreater: return widthAnchor.constraint(greaterThanOrEqualToConstant: width).with(priority).set(isActive)
}
return widthAnchor.constraint(toConstant: width, relation: relation).with(priority).set(isActive)
}

@discardableResult
func width(to view: Constrainable, _ dimension: NSLayoutDimension? = nil, multiplier: CGFloat = 1, offset: CGFloat = 0, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return widthAnchor.constraint(equalTo: dimension ?? view.widthAnchor, multiplier: multiplier, constant: offset).with(priority).set(isActive)
case .equalOrLess: return widthAnchor.constraint(lessThanOrEqualTo: dimension ?? view.widthAnchor, multiplier: multiplier, constant: offset).with(priority).set(isActive)
case .equalOrGreater: return widthAnchor.constraint(greaterThanOrEqualTo: dimension ?? view.widthAnchor, multiplier: multiplier, constant: offset).with(priority).set(isActive)
}
return widthAnchor.constraint(to: dimension ?? view.widthAnchor, multiplier: multiplier, offset: offset, relation: relation).with(priority).set(isActive)
}

@discardableResult
Expand Down Expand Up @@ -154,23 +144,13 @@ public extension Constrainable {
@discardableResult
func height(_ height: CGFloat, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return heightAnchor.constraint(equalToConstant: height).with(priority).set(isActive)
case .equalOrLess: return heightAnchor.constraint(lessThanOrEqualToConstant: height).with(priority).set(isActive)
case .equalOrGreater: return heightAnchor.constraint(greaterThanOrEqualToConstant: height).with(priority).set(isActive)
}
return heightAnchor.constraint(toConstant: height, relation: relation).with(priority).set(isActive)
}

@discardableResult
func height(to view: Constrainable, _ dimension: NSLayoutDimension? = nil, multiplier: CGFloat = 1, offset: CGFloat = 0, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return heightAnchor.constraint(equalTo: dimension ?? view.heightAnchor, multiplier: multiplier, constant: offset).with(priority).set(isActive)
case .equalOrLess: return heightAnchor.constraint(lessThanOrEqualTo: dimension ?? view.heightAnchor, multiplier: multiplier, constant: offset).with(priority).set(isActive)
case .equalOrGreater: return heightAnchor.constraint(greaterThanOrEqualTo: dimension ?? view.heightAnchor, multiplier: multiplier, constant: offset).with(priority).set(isActive)
}
return heightAnchor.constraint(to: dimension ?? view.heightAnchor, multiplier: multiplier, offset: offset, relation: relation).with(priority).set(isActive)
}

@discardableResult
Expand Down Expand Up @@ -213,12 +193,7 @@ public extension Constrainable {
@discardableResult
func leading(to view: Constrainable, _ anchor: NSLayoutXAxisAnchor? = nil, offset: CGFloat = 0, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return leadingAnchor.constraint(equalTo: anchor ?? view.leadingAnchor, constant: offset).with(priority).set(isActive)
case .equalOrLess: return leadingAnchor.constraint(lessThanOrEqualTo: anchor ?? view.leadingAnchor, constant: offset).with(priority).set(isActive)
case .equalOrGreater: return leadingAnchor.constraint(greaterThanOrEqualTo: anchor ?? view.leadingAnchor, constant: offset).with(priority).set(isActive)
}
return leadingAnchor.constraint(to: anchor ?? view.leadingAnchor, relation: relation).with(priority).set(isActive)
}

@discardableResult
Expand All @@ -230,12 +205,7 @@ public extension Constrainable {
@discardableResult
func left(to view: Constrainable, _ anchor: NSLayoutXAxisAnchor? = nil, offset: CGFloat = 0, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return leftAnchor.constraint(equalTo: anchor ?? view.leftAnchor, constant: offset).with(priority).set(isActive)
case .equalOrLess: return leftAnchor.constraint(lessThanOrEqualTo: anchor ?? view.leftAnchor, constant: offset).with(priority).set(isActive)
case .equalOrGreater: return leftAnchor.constraint(greaterThanOrEqualTo: anchor ?? view.leftAnchor, constant: offset).with(priority).set(isActive)
}
return leftAnchor.constraint(to: anchor ?? view.leftAnchor, relation: relation).with(priority).set(isActive)
}

@discardableResult
Expand All @@ -247,12 +217,7 @@ public extension Constrainable {
@discardableResult
func trailing(to view: Constrainable, _ anchor: NSLayoutXAxisAnchor? = nil, offset: CGFloat = 0, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return trailingAnchor.constraint(equalTo: anchor ?? view.trailingAnchor, constant: offset).with(priority).set(isActive)
case .equalOrLess: return trailingAnchor.constraint(lessThanOrEqualTo: anchor ?? view.trailingAnchor, constant: offset).with(priority).set(isActive)
case .equalOrGreater: return trailingAnchor.constraint(greaterThanOrEqualTo: anchor ?? view.trailingAnchor, constant: offset).with(priority).set(isActive)
}
return trailingAnchor.constraint(to: anchor ?? view.trailingAnchor, relation: relation).with(priority).set(isActive)
}

@discardableResult
Expand All @@ -264,12 +229,7 @@ public extension Constrainable {
@discardableResult
func right(to view: Constrainable, _ anchor: NSLayoutXAxisAnchor? = nil, offset: CGFloat = 0, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return rightAnchor.constraint(equalTo: anchor ?? view.rightAnchor, constant: offset).with(priority).set(isActive)
case .equalOrLess: return rightAnchor.constraint(lessThanOrEqualTo: anchor ?? view.rightAnchor, constant: offset).with(priority).set(isActive)
case .equalOrGreater: return rightAnchor.constraint(greaterThanOrEqualTo: anchor ?? view.rightAnchor, constant: offset).with(priority).set(isActive)
}
return rightAnchor.constraint(to: anchor ?? view.rightAnchor, relation: relation).with(priority).set(isActive)
}

@discardableResult
Expand All @@ -281,12 +241,7 @@ public extension Constrainable {
@discardableResult
func top(to view: Constrainable, _ anchor: NSLayoutYAxisAnchor? = nil, offset: CGFloat = 0, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return topAnchor.constraint(equalTo: anchor ?? view.topAnchor, constant: offset).with(priority).set(isActive)
case .equalOrLess: return topAnchor.constraint(lessThanOrEqualTo: anchor ?? view.topAnchor, constant: offset).with(priority).set(isActive)
case .equalOrGreater: return topAnchor.constraint(greaterThanOrEqualTo: anchor ?? view.topAnchor, constant: offset).with(priority).set(isActive)
}
return topAnchor.constraint(to: anchor ?? view.topAnchor, relation: relation).with(priority).set(isActive)
}

@discardableResult
Expand All @@ -298,12 +253,7 @@ public extension Constrainable {
@discardableResult
func bottom(to view: Constrainable, _ anchor: NSLayoutYAxisAnchor? = nil, offset: CGFloat = 0, relation: ConstraintRelation = .equal, priority: LayoutPriority = .required, isActive: Bool = true) -> Constraint {
prepareForLayout()

switch relation {
case .equal: return bottomAnchor.constraint(equalTo: anchor ?? view.bottomAnchor, constant: offset).with(priority).set(isActive)
case .equalOrLess: return bottomAnchor.constraint(lessThanOrEqualTo: anchor ?? view.bottomAnchor, constant: offset).with(priority).set(isActive)
case .equalOrGreater: return bottomAnchor.constraint(greaterThanOrEqualTo: anchor ?? view.bottomAnchor, constant: offset).with(priority).set(isActive)
}
return bottomAnchor.constraint(to: anchor ?? view.bottomAnchor, relation: relation).with(priority).set(isActive)
}

@discardableResult
Expand Down