Skip to content

Commit 69f50d6

Browse files
author
Stephane Magne
authored
Merge pull request #179 from scribd/stephane/projects_param
Add projects attribute to Weaver to filter out dependencies by project names
2 parents f0e40df + a35cbbd commit 69f50d6

15 files changed

+295
-96
lines changed

Sample/API/Generated/Weaver.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Foundation
22
import UIKit
33

44
// swiftlint:disable all
5-
/// This file is generated by Weaver 1.1.4
5+
/// This file is generated by Weaver 1.1.5
66
/// DO NOT EDIT!
77

88
final class MainDependencyContainer {

Sample/Sample/AppDelegate.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
1616

1717
private let dependencies = MainDependencyContainer.appDelegateDependencyResolver()
1818

19-
@Weaver(.registration)
19+
@Weaver(.registration, projects: ["Sample"])
2020
private var logger: Logger
2121

2222
@Weaver(.registration, builder: AppDelegate.makeURLSession)

Sample/Sample/Generated/Weaver.swift

+13-13
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Foundation
33
import UIKit
44

55
// swiftlint:disable all
6-
/// This file is generated by Weaver 1.1.4
6+
/// This file is generated by Weaver 1.1.5
77
/// DO NOT EDIT!
88

99
@objc(SampleIOSMainDependencyContainer)
@@ -213,10 +213,9 @@ final class MainDependencyContainer: NSObject {
213213
private func personManagerDependencyResolver() -> PersonManagerDependencyResolver {
214214
let _self = MainDependencyContainer()
215215
var _builders = Dictionary<String, Any>()
216-
_builders["logger"] = Provider.lazyBuilder( { (_: Optional<Provider.ParametersCopier>) -> Logger in return Logger() })
216+
_builders["logger"] = _self.loggerBuilder
217217
_builders["movieAPI"] = _self.movieAPIBuilder
218218
_self.provider.addBuilders(_builders)
219-
_ = _self.logger
220219
MainDependencyContainer._pushDynamicResolver({ _self.logger })
221220
MainDependencyContainer._pushDynamicResolver({ _self.movieAPI })
222221
return _self
@@ -225,10 +224,9 @@ final class MainDependencyContainer: NSObject {
225224
private func reviewManagerDependencyResolver() -> ReviewManagerDependencyResolver {
226225
let _self = MainDependencyContainer()
227226
var _builders = Dictionary<String, Any>()
228-
_builders["logger"] = Provider.lazyBuilder( { (_: Optional<Provider.ParametersCopier>) -> Logger in return Logger() })
227+
_builders["logger"] = loggerBuilder
229228
_builders["movieAPI"] = movieAPIBuilder
230229
_self.provider.addBuilders(_builders)
231-
_ = _self.logger
232230
MainDependencyContainer._pushDynamicResolver({ _self.logger })
233231
MainDependencyContainer._pushDynamicResolver({ _self.movieAPI })
234232
return _self
@@ -238,7 +236,6 @@ final class MainDependencyContainer: NSObject {
238236
let _self = MainDependencyContainer(provider: provider.copy())
239237
let _inputProvider = _self.provider.copy()
240238
var _builders = Dictionary<String, Any>()
241-
_builders["logger"] = Provider.lazyBuilder( { (_: Optional<Provider.ParametersCopier>) -> Logger in return Logger() })
242239
_builders["movieController"] = Provider.weakLazyBuilder(
243240
{ (copyParameters: Optional<Provider.ParametersCopier>) -> UIViewController in
244241
defer { MainDependencyContainer._dynamicResolversLock.unlock() }
@@ -250,11 +247,11 @@ final class MainDependencyContainer: NSObject {
250247
}
251248
)
252249
_builders["imageManager"] = imageManagerBuilder
250+
_builders["logger"] = loggerBuilder
253251
_builders["movieManager"] = movieManagerBuilder
254252
_builders["reviewManager"] = reviewManagerBuilder
255253
_self.provider.addBuilders(_builders)
256254
_inputProvider.addBuilders(_builders)
257-
_ = _self.logger
258255
MainDependencyContainer._pushDynamicResolver({ _self.logger })
259256
MainDependencyContainer._pushDynamicResolver({ _self.movieManager })
260257
MainDependencyContainer._pushDynamicResolver(_self.movieController)
@@ -265,18 +262,17 @@ final class MainDependencyContainer: NSObject {
265262
let _self = MainDependencyContainer(provider: provider.copy())
266263
let _inputProvider = _self.provider
267264
var _builders = Dictionary<String, Any>()
268-
_builders["logger"] = Provider.lazyBuilder( { (_: Optional<Provider.ParametersCopier>) -> Logger in return Logger() })
269265
_builders["reviewController"] = Provider.weakLazyBuilder(
270266
{ (_: Optional<Provider.ParametersCopier>) -> WSReviewViewController in
271267
let _inputContainer = MainDependencyContainer(provider: _inputProvider.copy())
272268
return WSReviewViewController.make(_inputContainer as WSReviewViewControllerInputDependencyResolver)
273269
}
274270
)
275271
_builders["imageManager"] = imageManagerBuilder
272+
_builders["logger"] = loggerBuilder
276273
_builders["movieManager"] = movieManagerBuilder
277274
_builders["reviewManager"] = reviewManagerBuilder
278275
_self.provider.addBuilders(_builders)
279-
_ = _self.logger
280276
MainDependencyContainer._pushDynamicResolver({ _self.logger })
281277
MainDependencyContainer._pushDynamicResolver({ _self.movieID })
282278
MainDependencyContainer._pushDynamicResolver({ _self.movieTitle })
@@ -369,7 +365,8 @@ struct Weaver<ConcreteType, AbstractType> {
369365
escaping: Bool = false,
370366
builder: Optional<Any> = nil,
371367
objc: Bool = false,
372-
platforms: Array<MainDependencyContainer.Platform> = []) {
368+
platforms: Array<MainDependencyContainer.Platform> = [],
369+
projects: Array<String> = []) {
373370
// no-op
374371
}
375372

@@ -385,7 +382,8 @@ extension Weaver where ConcreteType == Void {
385382
escaping: Bool = false,
386383
builder: Optional<Any> = nil,
387384
objc: Bool = false,
388-
platforms: Array<MainDependencyContainer.Platform> = []) {
385+
platforms: Array<MainDependencyContainer.Platform> = [],
386+
projects: Array<String> = []) {
389387
// no-op
390388
}
391389
}
@@ -403,7 +401,8 @@ struct WeaverP2<ConcreteType, AbstractType, P1, P2> {
403401
escaping: Bool = false,
404402
builder: Optional<Any> = nil,
405403
objc: Bool = false,
406-
platforms: Array<MainDependencyContainer.Platform> = []) {
404+
platforms: Array<MainDependencyContainer.Platform> = [],
405+
projects: Array<String> = []) {
407406
// no-op
408407
}
409408

@@ -419,7 +418,8 @@ extension WeaverP2 where ConcreteType == Void {
419418
escaping: Bool = false,
420419
builder: Optional<Any> = nil,
421420
objc: Bool = false,
422-
platforms: Array<MainDependencyContainer.Platform> = []) {
421+
platforms: Array<MainDependencyContainer.Platform> = [],
422+
projects: Array<String> = []) {
423423
// no-op
424424
}
425425
}

Sample/Sample/Manager/PersonManager.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ final class PersonManager: PersonManaging {
2828

2929
// weaver: self.isIsolated = true
3030

31-
@Weaver(.registration)
31+
@Weaver(.reference)
3232
private var logger: Logger
3333

3434
@Weaver(.reference)

Sample/Sample/Manager/ReviewManager.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import API
3737

3838
final class ReviewManager: ReviewManaging {
3939

40-
@Weaver(.registration)
40+
@Weaver(.reference)
4141
private var logger: Logger
4242

4343
@Weaver(.reference)

Sample/Sample/View/HomeViewController.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ final class HomeViewController: UIViewController {
1616

1717
private var movies = [Movie]()
1818

19-
@Weaver(.registration)
19+
@Weaver(.reference, platforms: [.iOS])
2020
private var logger: Logger
2121

2222
@Weaver(.reference)

Sample/Sample/View/MovieViewController.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ final class MovieViewController: UIViewController {
1717
let overview: String?
1818
}
1919

20-
@Weaver(.registration)
20+
@Weaver(.reference)
2121
private var logger: Logger
2222

2323
@Weaver(.parameter)

Sources/WeaverCodeGen/Codable.swift

+10
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ extension ConfigurationAttribute: Codable {
3131
self = .escaping(value: try container.decode(Bool.self, forKey: .value))
3232
case .platforms:
3333
self = .platforms(values: try container.decode([Platform].self, forKey: .value))
34+
case .projects:
35+
self = .projects(values: try container.decode([String].self, forKey: .value))
3436
}
3537
}
3638

@@ -58,6 +60,9 @@ extension ConfigurationAttribute: Codable {
5860
case .platforms(let value):
5961
try container.encode(ConfigurationAttributeName.platforms, forKey: .name)
6062
try container.encode(value, forKey: .value)
63+
case .projects(let value):
64+
try container.encode(ConfigurationAttributeName.projects, forKey: .name)
65+
try container.encode(value, forKey: .value)
6166
}
6267
}
6368
}
@@ -95,6 +100,7 @@ extension ConfigurationAttributeName: Codable {
95100
case setter = "set"
96101
case escaping = "e"
97102
case platforms = "p"
103+
case projects = "j"
98104

99105
init(_ value: ConfigurationAttributeName) {
100106
switch value {
@@ -112,6 +118,8 @@ extension ConfigurationAttributeName: Codable {
112118
self = .escaping
113119
case .platforms:
114120
self = .platforms
121+
case .projects:
122+
self = .projects
115123
}
116124
}
117125

@@ -131,6 +139,8 @@ extension ConfigurationAttributeName: Codable {
131139
return .escaping
132140
case .platforms:
133141
return .platforms
142+
case .projects:
143+
return .projects
134144
}
135145
}
136146
}

Sources/WeaverCodeGen/Configuration.swift

+4-1
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,17 @@ struct DependencyConfiguration: Configuration {
4848
let escaping: Bool
4949

5050
let platforms: Set<Platform>
51-
51+
52+
let projects: Set<String>
53+
5254
init(with attributes: [ConfigurationAttributeName: ConfigurationAttribute]?) {
5355
customBuilder = attributes?[.customBuilder]?.stringValue
5456
scope = attributes?[.scope]?.scopeValue ?? .default
5557
doesSupportObjc = attributes?[.doesSupportObjc]?.boolValue ?? false
5658
setter = attributes?[.setter]?.boolValue ?? false
5759
escaping = attributes?[.escaping]?.boolValue ?? false
5860
platforms = Set(attributes?[.platforms]?.platformValues ?? [])
61+
projects = Set(attributes?[.projects]?.projectValues ?? [])
5962
}
6063
}
6164

0 commit comments

Comments
 (0)