@@ -221,9 +241,9 @@
Declaration
@@ -260,8 +280,8 @@
Declaration
diff --git a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/Structs/DISetting/Log.html b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/Structs/DISetting/Log.html
index 42d2f172..ce55e3b8 100644
--- a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/Structs/DISetting/Log.html
+++ b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/Structs/DISetting/Log.html
@@ -14,7 +14,7 @@
- DIScan
-
-
- DIScanFramework
-
-
- – Predicate
-
-
- DIScanPart
-
-
- – Predicate
+ DIScope
DIStoryboard
@@ -99,29 +93,55 @@
+
+ Extensions
+
+
Functions
@@ -135,7 +155,7 @@
DIPart
- DIScanned
+ DIStorage
@@ -191,9 +211,9 @@
Log
@@ -221,9 +241,9 @@
Declaration
@@ -251,9 +271,9 @@
Declaration
@@ -283,8 +303,8 @@
Declaration
diff --git a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/Typealiases.html b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/Typealiases.html
index b966f51a..81f399f8 100644
--- a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/Typealiases.html
+++ b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/Typealiases.html
@@ -14,7 +14,7 @@
- DIScan
-
-
- DIScanFramework
-
-
- – Predicate
-
-
- DIScanPart
-
-
- – Predicate
+ DIScope
DIStoryboard
@@ -99,29 +93,55 @@
+
+ Extensions
+
+
Functions
@@ -135,7 +155,7 @@
DIPart
- DIScanned
+ DIStorage
@@ -277,8 +297,8 @@
Declaration
diff --git a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/css/jazzy.css b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/css/jazzy.css
index d6282826..a9828921 100644
--- a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/css/jazzy.css
+++ b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/css/jazzy.css
@@ -150,7 +150,7 @@ header {
margin-left: 246px;
position: absolute;
overflow: hidden;
- padding-bottom: 60px;
+ padding-bottom: 20px;
top: 70px;
width: 734px; }
.main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote {
@@ -216,10 +216,12 @@ header {
.item code {
background-color: transparent;
padding: 0; }
- .item .token {
+ .item .token, .item .direct-link {
padding-left: 3px;
margin-left: 15px;
font-size: 11.9px; }
+ .item .discouraged {
+ text-decoration: line-through; }
.item .declaration-note {
font-size: .85em;
color: gray;
@@ -283,9 +285,9 @@ header {
.language .aside-title {
color: #4b8afb; }
-.aside-warning {
+.aside-warning, .aside-deprecated, .aside-unavailable {
border-left: 5px solid #ff6666; }
- .aside-warning .aside-title {
+ .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title {
color: #ff0000; }
.graybox {
@@ -310,8 +312,9 @@ header {
font-size: 0.9em; }
#footer {
- position: absolute;
- bottom: 10px;
+ position: relative;
+ top: 10px;
+ bottom: 0px;
margin-left: 25px; }
#footer p {
margin: 0;
diff --git a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/index.html b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/index.html
index 77308e11..abf2827f 100644
--- a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/index.html
+++ b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/index.html
@@ -13,7 +13,7 @@
- DIScan
-
-
- DIScanFramework
-
-
- – Predicate
-
-
- DIScanPart
-
-
- – Predicate
+ DIScope
DIStoryboard
@@ -98,29 +92,55 @@
+
+ Extensions
+
+
Functions
@@ -134,7 +154,7 @@
DIPart
- DIScanned
+ DIStorage
@@ -180,7 +200,8 @@

-

+

+
DITranquillity
The small library for dependency injection in applications written on pure Swift for iOS/OSX/tvOS. Despite its size, it solves a large enough range of tasks, including Storyboard support. Its main advantage - modularity of support, detailed errors description and lots of opportunities.
@@ -194,21 +215,28 @@
Features
Property, Method injections ru
Named, Tags definitions and Many ru
Type forwarding ru
-
Lifetimes: single, perRun(weak/strong), perContainer(weak/strong), objectGraph, prototype ru
+
Lifetimes: single, perRun(weak/strong), perContainer(weak/strong), objectGraph, prototype, custom ru
iOS/macOS Storyboard and StoryboardReference ru
Circular dependencies ru
Three level hierarchy: types, part, framework ru
Short resolve syntax ru
keyPath injection (since swift4.0) ru
-
Delayed injection ru
Very detail logs ru
Validation at the run app ru
Injection into Subviews and cells ru
-
Scan Parts/Frameworks ru
Support Delayed injection ru
Injection with arguments at any depth
+
Container Hierarchy
Thread safe
+
Helpful links
+
+
Usage
// container - for register and resolve your types
let container = DIContainer()
@@ -362,13 +390,6 @@ Storyboard (iOS/OS X)
“`
-For more details
-
-
Install
Via CocoaPods.
@@ -396,15 +417,6 @@ Migration
Changelog
See CHANGELOG.md file.
-Alternative
-
-
Feedback
I’ve found a bug, or have a feature request
@@ -419,8 +431,8 @@ Question?
diff --git a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/search.json b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/search.json
index a200ecf6..6af0aa43 100644
--- a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/search.json
+++ b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/Documents/search.json
@@ -1 +1 @@
-{"Typealiases.html#/s:14DITranquillity7DIATypea":{"name":"DIAType","abstract":"Any type that can be in the application
"},"Typealiases.html#/s:14DITranquillity5DITaga":{"name":"DITag","abstract":"Tag is needed to specify alternative component names
"},"Typealiases.html#/s:14DITranquillity9DILogFunca":{"name":"DILogFunc","abstract":"Type of function for logging
"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4typeypXpv":{"name":"type","abstract":"Any type announced at registration the component
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4fileSSv":{"name":"file","abstract":"File where the component is registration
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4lineSiv":{"name":"line","abstract":"Line where the component is registration
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:s8HashableP9hashValueSiv":{"name":"hashValue","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:s9EquatableP2eeoiSbx_xtFZ":{"name":"==(_:_:)","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:s23CustomStringConvertibleP11descriptionSSv":{"name":"description","parent_name":"DIComponentInfo"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV3funyAA10DILogLevelO_SStcSgvZ":{"name":"fun","abstract":"Logging function. Can be nil. Default is print("\\(logLevel): \\(message)")
","parent_name":"Log"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV5levelAA10DILogLevelOvZ":{"name":"level","abstract":"Minimum level of logging. Default is info
","parent_name":"Log"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV3tabSSvZ":{"name":"tab","abstract":"Tabulation for logging. It is necessary to better understand the information log. Default is
","parent_name":"Log"},"Structs/DISetting/Defaults.html#/s:14DITranquillity9DISettingV8DefaultsV8lifeTimeAA06DILifeE0OvZ":{"name":"lifeTime","abstract":"Default lifetime of a object
","parent_name":"Defaults"},"Structs/DISetting/Defaults.html#/s:14DITranquillity9DISettingV8DefaultsV16injectToSubviewsSbvZ":{"name":"injectToSubviews","abstract":"Global flag for configuring ViewController view and its subviews injection.
","parent_name":"Defaults"},"Structs/DISetting/Defaults.html":{"name":"Defaults","abstract":"Undocumented
","parent_name":"DISetting"},"Structs/DISetting/Log.html":{"name":"Log","abstract":"Namespace for log settings
","parent_name":"DISetting"},"Structs/DISetting.html":{"name":"DISetting","abstract":"Namespace for settings
"},"Structs/DIComponentInfo.html":{"name":"DIComponentInfo","abstract":"Short information about component. Needed for good log
"},"Protocols/DIPart.html#/s:14DITranquillity6DIPartP4loadyAA11DIContainerC9container_tFZ":{"name":"load(container:)","abstract":"Method inside of which you can registration a components.","parent_name":"DIPart"},"Protocols/DIFramework.html#/s:14DITranquillity11DIFrameworkP6bundleSo6BundleCvZ":{"name":"bundle","abstract":"
bundle which is a framework. Default picks based on where the class.","parent_name":"DIFramework"},"Protocols/DIFramework.html#/s:14DITranquillity11DIFrameworkP4loadyAA11DIContainerC9container_tFZ":{"name":"load(container:)","abstract":"
Method inside of which you can registration a components.","parent_name":"DIFramework"},"Protocols/DIFramework.html":{"name":"DIFramework","abstract":"
Slight expansion over part."},"Protocols/DIPart.html":{"name":"DIPart","abstract":"
Class to maintain code hierarchy."},"Protocols.html#/s:14DITranquillity9DIScannedP":{"name":"DIScanned","abstract":"
Protocol to indicate which classes should be included in scan."},"Functions.html#/s:14DITranquillity1mopxAA11DIContainerClF":{"name":"*(_:)","abstract":"
Short syntax for resolve."},"Functions.html#/s:14DITranquillity2byq_xm3tag_AA7DIByTagCyxq_G2ontr0_lF":{"name":"by(tag:on:)","abstract":"
Short syntax for get object by tag"},"Functions.html#/s:14DITranquillity2byq0_xm4tags_q_mAA7DIByTagCyxAEyq_q0_GG2ontr1_lF":{"name":"by(tags:_:on:)","abstract":"
Short syntax for get object by two tags"},"Functions.html#/s:14DITranquillity2byq1_xm4tags_q_mq0_mAA7DIByTagCyxAEyq_AEyq0_q1_GGG2ontr2_lF":{"name":"by(tags:_:_:on:)","abstract":"
Short syntax for get object by three tags"},"Functions.html#/s:14DITranquillity4manySayxGAA6DIManyCyxGlF":{"name":"many(_:)","abstract":"
Short syntax for get many objects"},"Functions.html#/s:14DITranquillity12manyInBundleSayxGAA06DIManycD0CyxGlF":{"name":"manyInBundle(_:)","abstract":"
Short syntax for get many objects in bundle"},"Functions.html#/s:14DITranquillity3argxAA5DIArgCyxGlF":{"name":"arg(_:)","abstract":"
Short syntax for get object use arguments"},"Enums/DILifeTime/ReferenceCounting.html#/s:14DITranquillity10DILifeTimeO17ReferenceCountingO4weakA2EmF":{"name":"weak","abstract":"
Initialization when first accessed, and the library doesn’t hold it
","parent_name":"ReferenceCounting"},"Enums/DILifeTime/ReferenceCounting.html#/s:14DITranquillity10DILifeTimeO17ReferenceCountingO6strongA2EmF":{"name":"strong","abstract":"Initialization when first accessed, and the library hold it
","parent_name":"ReferenceCounting"},"Enums/DILifeTime/ReferenceCounting.html":{"name":"ReferenceCounting","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6singleA2CmF":{"name":"single","abstract":"The object is only one in the application. Initialization by call DIContainer.initializeSingletonObjects()
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6perRunA2C17ReferenceCountingOcACmF":{"name":"perRun","abstract":"The object is only one in the one run.
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO12perContainerA2C17ReferenceCountingOcACmF":{"name":"perContainer","abstract":"The object is only one in one container.
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO11objectGraphA2CmF":{"name":"objectGraph","abstract":"The object is created every time, but during the creation will be created once
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO9prototypeA2CmF":{"name":"prototype","abstract":"The object is created every time
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO10lazySingleACvZ":{"name":"lazySingle","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO10weakSingleACvZ":{"name":"weakSingle","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:s9EquatableP2eeoiSbx_xtFZ":{"name":"==(_:_:)","parent_name":"DILifeTime"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO4noneA2CmF":{"name":"none","abstract":"disable all logs
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO5errorA2CmF":{"name":"error","abstract":"After an error, a application can not be executable
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO7warningA2CmF":{"name":"warning","abstract":"Warning should pe paid attention and analyzed
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO4infoA2CmF":{"name":"info","abstract":"Information contains possible errors
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO7verboseA2CmF":{"name":"verbose","abstract":"Verbose is needed to understand what is happening
","parent_name":"DILogLevel"},"Enums/DILogLevel.html":{"name":"DILogLevel","abstract":"Log levels. Needed for a better understanding of logs, and clipping
"},"Enums/DILifeTime.html":{"name":"DILifeTime","abstract":"A object life time
"},"Classes/DIStoryboard.html#/c:@M@DITranquillity@objc(cs)DIStoryboard(cm)createWithName:bundle:":{"name":"create(name:bundle:)","abstract":"Creates new instance of DIStoryboard
.","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/s:14DITranquillity12DIStoryboardC6createACSS4name_So6BundleCSg6bundleAA11DIContainerC9containertFZ":{"name":"create(name:bundle:container:)","abstract":"
Creates new instance of DIStoryboard
, with the specified container.
","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/c:@M@DITranquillity@objc(cs)DIStoryboard(im)instantiateViewControllerWithIdentifier:":{"name":"instantiateViewController(withIdentifier:)","abstract":"Instantiates the view controller with the specified identifier.","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/instantiateController(withIdentifier:)":{"name":"instantiateController(withIdentifier:)","abstract":"
Instantiates the view/window controler with the specified identifier.","parent_name":"DIStoryboard"},"Classes/DIScanPart/Predicate.html#/s:14DITranquillity10DIScanPartC9PredicateO4typeAESbAA6DIPart_pXpccAEmF":{"name":"type","abstract":"
Undocumented
","parent_name":"Predicate"},"Classes/DIScanPart/Predicate.html#/s:14DITranquillity10DIScanPartC9PredicateO4nameAESbSSccAEmF":{"name":"name","abstract":"Undocumented
","parent_name":"Predicate"},"Classes/DIScanPart/Predicate.html":{"name":"Predicate","abstract":"Variants of the predicate on the basis of which these parts will be included.
","parent_name":"DIScanPart"},"Classes/DIScanPart.html#/s:14DITranquillity10DIScanPartC9predicateAC9PredicateOSgvZ":{"name":"predicate","abstract":"Predicate on the basis of which these parts will be included.
","parent_name":"DIScanPart"},"Classes/DIScanPart.html#/s:14DITranquillity10DIScanPartC6bundleSo6BundleCSgvZ":{"name":"bundle","abstract":"It allows you to cut off parts not belonging to the specified bundle.
","parent_name":"DIScanPart"},"Classes/DIScanPart.html#/s:14DITranquillity10DIScanPartC4loadyAA11DIContainerC9container_tFZ":{"name":"load(container:)","abstract":"implementation of the function for scan.
","parent_name":"DIScanPart"},"Classes/DIScanFramework/Predicate.html#/s:14DITranquillity15DIScanFrameworkC9PredicateO4typeAESbAA11DIFramework_pXpccAEmF":{"name":"type","abstract":"Undocumented
","parent_name":"Predicate"},"Classes/DIScanFramework/Predicate.html#/s:14DITranquillity15DIScanFrameworkC9PredicateO4nameAESbSSccAEmF":{"name":"name","abstract":"Undocumented
","parent_name":"Predicate"},"Classes/DIScanFramework/Predicate.html":{"name":"Predicate","abstract":"Variants of the predicate on the basis of which these frameworks will be included.
","parent_name":"DIScanFramework"},"Classes/DIScanFramework.html#/s:14DITranquillity15DIScanFrameworkC9predicateAC9PredicateOSgvZ":{"name":"predicate","abstract":"Predicate on the basis of which these frameworks will be included.
","parent_name":"DIScanFramework"},"Classes/DIScanFramework.html#/s:14DITranquillity15DIScanFrameworkC4loadyAA11DIContainerC9container_tFZ":{"name":"load(container:)","abstract":"implementation of the function for scan.
","parent_name":"DIScanFramework"},"Classes/DIExtensions.html#/s:14DITranquillity12DIExtensionsC7setArgsySayypSgGd_tF":{"name":"setArgs(_:)","abstract":"method for setting arguments injected into an object.","parent_name":"DIExtensions"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerCACycfc":{"name":"init()","abstract":"
Undocumented
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC9register1AA18DIComponentBuilderCyxGSS4file_Si4linexq_ctr0_lF":{"name":"register1(file:line:_:)","abstract":"swift4 bug: https://bugs.swift.org/browse/SR-5112
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_tctr1_lF":{"name":"register(file:line:_:)","abstract":"Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_tctr2_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_tctr3_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_tctr4_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_tctr5_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_tctr6_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_tctr7_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_tctr8_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_tctr9_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_tctr10_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_tctr11_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_tctr12_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_tctr13_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_q13_tctr14_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_q13_q14_tctr15_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC10extensionsAA12DIExtensionsCSgypXp3for_SSSg4nameAA11DIFramework_pXpSg9frameworkSS4fileSi4linetF":{"name":"extensions(for:name:framework:file:line:)","abstract":"
Method for creating an object capable of customizing extensions
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGxm_SS4fileSi4linetlF":{"name":"register(_:file:line:)","abstract":"Registering a new component without initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexyctlF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolvexSo6BundleCSg4from_tlF":{"name":"resolve(from:)","abstract":"
Resolve object by type.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolvexq_m3tag_So6BundleCSg4fromtr0_lF":{"name":"resolve(tag:from:)","abstract":"
Resolve object by type with tag.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolvexSS4name_So6BundleCSg4fromtlF":{"name":"resolve(name:from:)","abstract":"
Resolve object by type with name.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC11resolveManySayxGylF":{"name":"resolveMany()","abstract":"
Resolve many objects by type.
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6injectyx4into_So6BundleCSg4fromtlF":{"name":"inject(into:from:)","abstract":"Injected all dependencies into object.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC26initializeSingletonObjectsyyF":{"name":"initializeSingletonObjects()","abstract":"
Initialize registered object with lifetime .single
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC5cleanyyF":{"name":"clean()","abstract":"Remove all cached object in container with lifetime perContainer(_)
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8validateS2b16checkGraphCycles_tF":{"name":"validate(checkGraphCycles:)","abstract":"Validate the graph by checking various conditions. For faster performance, set false.
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6appendAcA11DIFramework_pXp9framework_tF":{"name":"append(framework:)","abstract":"Registers a framework in the container.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6importyAA11DIFramework_pXpF":{"name":"import(_:)","abstract":"
Allows you to specify dependencies between frameworks.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6appendAcA6DIPart_pXp4part_tF":{"name":"append(part:)","abstract":"
Registers a part in the container.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC18registerStoryboardAA18DIComponentBuilderCySo12UIStoryboardCGSS4name_So6BundleCSg6bundleSS4fileSi4linetF":{"name":"registerStoryboard(name:bundle:file:line:)","abstract":"
Registers a new storyboard.","parent_name":"DIContainer"},"Classes/DIContainer.html#/registerStoryboard(name:bundle:file:line:)":{"name":"registerStoryboard(name:bundle:file:line:)","abstract":"
Registers a new storyboard.","parent_name":"DIContainer"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_tcr0_lF":{"name":"injection(_:)","abstract":"
Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_tcr1_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_tcr2_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_tcr3_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_tcr4_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_qd_5_tcr5_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_qd_5_qd_6_tcr6_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__mlF":{"name":"as(_:)","abstract":"Function allows you to specify a type by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m_qd_0_m3tagtr0_lF":{"name":"as(_:tag:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m_SS4nametlF":{"name":"as(_:name:)","abstract":"
Function allows you to specify a type with name by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m5check_qd__xctlF":{"name":"as(check:_:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m5check_qd_0_m3tagqd__xctr0_lF":{"name":"as(check:tag:_:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m5check_SS4nameqd__xctlF":{"name":"as(check:name:_:)","abstract":"
Function allows you to specify a type with name by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyxcF":{"name":"injection(_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDSSSg4name_Sb5cycleyx_qd__tctlF":{"name":"injection(name:cycle:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDSSSg4name_Sb5cycles24ReferenceWritableKeyPathCyxqd__Gqd__qd_0_ctr0_lF":{"name":"injection(name:cycle:_:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDSSSg4name_Sb5cycles24ReferenceWritableKeyPathCyxqd__GtlF":{"name":"injection(name:cycle:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC8postInitACyxGXDyxcF":{"name":"postInit(_:)","abstract":"
Function for appending an injection method which is always executed at end of a object creation.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC8lifetimeACyxGXDAA10DILifeTimeOF":{"name":"lifetime(_:)","abstract":"
Function to set lifetime of an object.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC7defaultACyxGXDyF":{"name":"default()","abstract":"
Function declaring that this component will use the default.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderCAASo16UIViewControllerCRbzlE20autoInjectToSubviewsACyxGXDyF":{"name":"autoInjectToSubviews()","abstract":"
Function allows injection inside UIViewController view and its subviews.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderCAASo6UIViewCRbzlE20autoInjectToSubviewsACyxGXDyF":{"name":"autoInjectToSubviews()","abstract":"
Function allows injection inside UIView and its subviews.","parent_name":"DIComponentBuilder"},"Classes.html#/s:14DITranquillity13InternalByTagC":{"name":"InternalByTag","abstract":"
Undocumented
"},"Classes.html#/s:14DITranquillity14InternalByManyC":{"name":"InternalByMany","abstract":"Undocumented
"},"Classes.html#/s:14DITranquillity22InternalByManyInBundleC":{"name":"InternalByManyInBundle","abstract":"Undocumented
"},"Classes.html#/s:14DITranquillity11InternalArgC":{"name":"InternalArg","abstract":"Undocumented
"},"Classes/DIComponentBuilder.html":{"name":"DIComponentBuilder","abstract":"Component Builder."},"Classes/DIContainer.html":{"name":"DIContainer","abstract":"
A container holding all registered components,"},"Classes/DIExtensions.html":{"name":"DIExtensions","abstract":"
сlass to extend possible actions related to object creation
"},"Classes.html#/s:14DITranquillity7DIByTagC":{"name":"DIByTag","abstract":"Special class for resolve object by type with tag. see method: byTag
"},"Classes.html#/s:14DITranquillity6DIManyC":{"name":"DIMany","abstract":"Special class for resolve many object. see method: many
"},"Classes.html#/s:14DITranquillity14DIManyInBundleC":{"name":"DIManyInBundle","abstract":"Special class for resolve many object in bundle. see method: manyInBundle
"},"Classes.html#/s:14DITranquillity5DIArgC":{"name":"DIArg","abstract":"Special class for resolve object use arguments. see method: arg
"},"Classes.html#/s:14DITranquillity6DIScanC":{"name":"DIScan","abstract":"Base class for scan. It doesn’t make much sense to inherit from it. see: DIScanFramework
and DIScanPart
"},"Classes/DIScanFramework.html":{"name":"DIScanFramework","abstract":"Allows you to find all frameworks marked as DIScanned
in the application that satisfy certain characteristics:"},"Classes/DIScanPart.html":{"name":"DIScanPart","abstract":"
Allows you to find all parts marked as DIScanned
in the application that satisfy certain characteristics:"},"Classes/DIStoryboard.html":{"name":"DIStoryboard","abstract":"
The class provides the features to inject dependencies of view/window controllers in a storyboard."},"Classes.html":{"name":"Classes","abstract":"
The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Functions.html":{"name":"Functions","abstract":"The following functions are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
\ No newline at end of file
+{"Typealiases.html#/s:14DITranquillity7DIATypea":{"name":"DIAType","abstract":"Any type that can be in the application
"},"Typealiases.html#/s:14DITranquillity5DITaga":{"name":"DITag","abstract":"Tag is needed to specify alternative component names
"},"Typealiases.html#/s:14DITranquillity9DILogFunca":{"name":"DILogFunc","abstract":"Type of function for logging
"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4typeypXpvp":{"name":"type","abstract":"Any type announced at registration the component
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4fileSSvp":{"name":"file","abstract":"File where the component is registration
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4lineSivp":{"name":"line","abstract":"Line where the component is registration
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:SH9hashValueSivp":{"name":"hashValue","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"DIComponentInfo"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV3funyAA10DILogLevelO_SStcSgvpZ":{"name":"fun","abstract":"Logging function. Can be nil. Default is print("\\(logLevel): \\(message)")
","parent_name":"Log"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV5levelAA10DILogLevelOvpZ":{"name":"level","abstract":"Minimum level of logging. Default is info
","parent_name":"Log"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV3tabSSvpZ":{"name":"tab","abstract":"Tabulation for logging. It is necessary to better understand the information log. Default is
","parent_name":"Log"},"Structs/DISetting/Defaults.html#/s:14DITranquillity9DISettingV8DefaultsV8lifeTimeAA06DILifeE0OvpZ":{"name":"lifeTime","abstract":"Default lifetime of a object
","parent_name":"Defaults"},"Structs/DISetting/Defaults.html#/s:14DITranquillity9DISettingV8DefaultsV16injectToSubviewsSbvpZ":{"name":"injectToSubviews","abstract":"Global flag for configuring ViewController view and its subviews injection.
","parent_name":"Defaults"},"Structs/DISetting/Defaults.html":{"name":"Defaults","abstract":"Undocumented
","parent_name":"DISetting"},"Structs/DISetting/Log.html":{"name":"Log","abstract":"Namespace for log settings
","parent_name":"DISetting"},"Structs/DISetting.html":{"name":"DISetting","abstract":"Namespace for settings
"},"Structs/DIComponentInfo.html":{"name":"DIComponentInfo","abstract":"Short information about component. Needed for good log
"},"Protocols/DIPart.html#/s:14DITranquillity6DIPartP4load9containeryAA11DIContainerC_tFZ":{"name":"load(container:)","abstract":"Method inside of which you can registration a components.","parent_name":"DIPart"},"Protocols/DIFramework.html#/s:14DITranquillity11DIFrameworkP6bundleSo8NSBundleCvpZ":{"name":"bundle","abstract":"
bundle which is a framework. Default picks based on where the class.","parent_name":"DIFramework"},"Protocols/DIFramework.html#/s:14DITranquillity11DIFrameworkP4load9containeryAA11DIContainerC_tFZ":{"name":"load(container:)","abstract":"
Method inside of which you can registration a components.","parent_name":"DIFramework"},"Protocols/DIStorage.html#/s:14DITranquillity9DIStorageP5fetch3keyypSgAA15DIComponentInfoV_tF":{"name":"fetch(key:)","abstract":"
Return storaged object if there is.
","parent_name":"DIStorage"},"Protocols/DIStorage.html#/s:14DITranquillity9DIStorageP4save6object2byyyp_AA15DIComponentInfoVtF":{"name":"save(object:by:)","abstract":"Save object to storage.
","parent_name":"DIStorage"},"Protocols/DIStorage.html#/s:14DITranquillity9DIStorageP5cleanyyF":{"name":"clean()","abstract":"Remove all save objects in storage
","parent_name":"DIStorage"},"Protocols/DIStorage.html":{"name":"DIStorage","abstract":"Universal protocol for contains objects by key
"},"Protocols/DIFramework.html":{"name":"DIFramework","abstract":"Slight expansion over part."},"Protocols/DIPart.html":{"name":"DIPart","abstract":"
Class to maintain code hierarchy."},"Functions.html#/s:14DITranquillity1mopyxAA11DIContainerClF":{"name":"*(_:)","abstract":"
Short syntax for resolve."},"Functions.html#/s:14DITranquillity2by3tag2onq_xm_AA7DIByTagCyxq_Gtr0_lF":{"name":"by(tag:on:)","abstract":"
Short syntax for get object by tag"},"Functions.html#/s:14DITranquillity2by4tags_2onq0_xm_q_mAA7DIByTagCyxAFyq_q0_GGtr1_lF":{"name":"by(tags:_:on:)","abstract":"
Short syntax for get object by two tags"},"Functions.html#/s:14DITranquillity2by4tags__2onq1_xm_q_mq0_mAA7DIByTagCyxAFyq_AFyq0_q1_GGGtr2_lF":{"name":"by(tags:_:_:on:)","abstract":"
Short syntax for get object by three tags"},"Functions.html#/s:14DITranquillity4manyySayxGAA6DIManyCyxGlF":{"name":"many(_:)","abstract":"
Short syntax for get many objects"},"Functions.html#/s:14DITranquillity12manyInBundleySayxGAA06DIManycD0CyxGlF":{"name":"manyInBundle(_:)","abstract":"
Short syntax for get many objects in bundle"},"Functions.html#/s:14DITranquillity3argyxAA5DIArgCyxGlF":{"name":"arg(_:)","abstract":"
Short syntax for get object use arguments"},"Extensions/Provider5.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"
Undocumented
","parent_name":"Provider5"},"Extensions/Provider4.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider4"},"Extensions/Provider3.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider3"},"Extensions/Provider2.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider2"},"Extensions/Provider1.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider1"},"Extensions/Provider.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider"},"Extensions/Lazy.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Lazy"},"Extensions/Lazy.html":{"name":"Lazy"},"Extensions/Provider.html":{"name":"Provider"},"Extensions/Provider1.html":{"name":"Provider1"},"Extensions/Provider2.html":{"name":"Provider2"},"Extensions/Provider3.html":{"name":"Provider3"},"Extensions/Provider4.html":{"name":"Provider4"},"Extensions/Provider5.html":{"name":"Provider5"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO4noneyA2CmF":{"name":"none","abstract":"disable all logs
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO5erroryA2CmF":{"name":"error","abstract":"After an error, a application can not be executable
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO7warningyA2CmF":{"name":"warning","abstract":"Warning should pe paid attention and analyzed
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO4infoyA2CmF":{"name":"info","abstract":"Information contains possible errors
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO7verboseyA2CmF":{"name":"verbose","abstract":"Verbose is needed to understand what is happening
","parent_name":"DILogLevel"},"Enums/DILifeTime/ReferenceCounting.html#/s:14DITranquillity10DILifeTimeO17ReferenceCountingO4weakyA2EmF":{"name":"weak","abstract":"Initialization when first accessed, and the library doesn’t hold it
","parent_name":"ReferenceCounting"},"Enums/DILifeTime/ReferenceCounting.html#/s:14DITranquillity10DILifeTimeO17ReferenceCountingO6strongyA2EmF":{"name":"strong","abstract":"Initialization when first accessed, and the library hold it
","parent_name":"ReferenceCounting"},"Enums/DILifeTime/ReferenceCounting.html":{"name":"ReferenceCounting","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6singleyA2CmF":{"name":"single","abstract":"The object is only one in the application. Initialization by call DIContainer.initializeSingletonObjects()
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6perRunyA2C17ReferenceCountingOcACmF":{"name":"perRun(_:)","abstract":"The object is only one in the one run.
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO12perContaineryA2C17ReferenceCountingOcACmF":{"name":"perContainer(_:)","abstract":"The object is only one in one container.
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO11objectGraphyA2CmF":{"name":"objectGraph","abstract":"The object is created every time, but during the creation will be created once
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO9prototypeyA2CmF":{"name":"prototype","abstract":"The object is created every time
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6customyAcA7DIScopeCcACmF":{"name":"custom(_:)","abstract":"Use user scope. For more information see DIScope
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO10lazySingleACvpZ":{"name":"lazySingle","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO10weakSingleACvpZ":{"name":"weakSingle","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"DILifeTime"},"Enums/DILifeTime.html":{"name":"DILifeTime","abstract":"A object life time
"},"Enums/DILogLevel.html":{"name":"DILogLevel","abstract":"Log levels. Needed for a better understanding of logs, and clipping
"},"Classes/DIStoryboard.html#/c:@M@DITranquillity@objc(cs)DIStoryboard(cm)createWithName:bundle:":{"name":"create(name:bundle:)","abstract":"Creates new instance of DIStoryboard
.","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/s:14DITranquillity12DIStoryboardC6create4name6bundle9containerACSS_So8NSBundleCSgAA11DIContainerCtFZ":{"name":"create(name:bundle:container:)","abstract":"
Creates new instance of DIStoryboard
, with the specified container.
","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/c:@M@DITranquillity@objc(cs)DIStoryboard(im)instantiateViewControllerWithIdentifier:":{"name":"instantiateViewController(withIdentifier:)","abstract":"Instantiates the view controller with the specified identifier.","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/instantiateController(withIdentifier:)":{"name":"instantiateController(withIdentifier:)","abstract":"
Instantiates the view/window controler with the specified identifier.","parent_name":"DIStoryboard"},"Classes/DICompositeStorage.html#/s:14DITranquillity18DICompositeStorageC8storagesACSayAA9DIStorage_pG_tcfc":{"name":"init(storages:)","abstract":"
Undocumented
","parent_name":"DICompositeStorage"},"Classes/DICompositeStorage.html#/s:14DITranquillity18DICompositeStorageC5fetch3keyypSgAA15DIComponentInfoV_tF":{"name":"fetch(key:)","abstract":"Fetch object by key from first containing storage.
","parent_name":"DICompositeStorage"},"Classes/DICompositeStorage.html#/s:14DITranquillity18DICompositeStorageC4save6object2byyyp_AA15DIComponentInfoVtF":{"name":"save(object:by:)","abstract":"Save object to all storages
","parent_name":"DICompositeStorage"},"Classes/DICompositeStorage.html#/s:14DITranquillity18DICompositeStorageC5cleanyyF":{"name":"clean()","abstract":"Remove all save objects from all storages
","parent_name":"DICompositeStorage"},"Classes/DICacheStorage.html#/s:14DITranquillity14DICacheStorageCACycfc":{"name":"init()","abstract":"Undocumented
","parent_name":"DICacheStorage"},"Classes/DICacheStorage.html#/s:14DITranquillity9DIStorageP5fetch3keyypSgAA15DIComponentInfoV_tF":{"name":"fetch(key:)","parent_name":"DICacheStorage"},"Classes/DICacheStorage.html#/s:14DITranquillity9DIStorageP4save6object2byyyp_AA15DIComponentInfoVtF":{"name":"save(object:by:)","parent_name":"DICacheStorage"},"Classes/DICacheStorage.html#/s:14DITranquillity9DIStorageP5cleanyyF":{"name":"clean()","parent_name":"DICacheStorage"},"Classes/DIScope.html#/s:14DITranquillity7DIScopeC4nameSSvp":{"name":"name","abstract":"Scope name. Used in logging
","parent_name":"DIScope"},"Classes/DIScope.html#/s:14DITranquillity7DIScopeC4name7storage6policy6parentACSS_AA9DIStorage_pAA10DILifeTimeO17ReferenceCountingOACSgtcfc":{"name":"init(name:storage:policy:parent:)","abstract":"Make Scope. Scopes need for control lifetime of your objects
","parent_name":"DIScope"},"Classes/DIScope.html#/s:14DITranquillity7DIScopeC5cleanyyF":{"name":"clean()","abstract":"Remove all saved objects
","parent_name":"DIScope"},"Classes/DIScope.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"DIScope"},"Classes/DIExtensions.html#/s:14DITranquillity12DIExtensionsC7setArgsyyypSgd_tF":{"name":"setArgs(_:)","abstract":"method for setting arguments injected into an object.","parent_name":"DIExtensions"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6parentA2CSg_tcfc":{"name":"init(parent:)","abstract":"
Make entry point for library
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC9register14file4line_AA18DIComponentBuilderCyxGSS_Sixq_ctr0_lF":{"name":"register1(file:line:_:)","abstract":"swift4 bug: https://bugs.swift.org/browse/SR-5112
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_tctr1_lF":{"name":"register(file:line:_:)","abstract":"Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_tctr2_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_tctr3_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_tctr4_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_tctr5_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_tctr6_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_tctr7_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_tctr8_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_tctr9_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_tctr10_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_tctr11_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_tctr12_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_tctr13_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_q13_tctr14_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_q13_q14_tctr15_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC10extensions3for4name9framework4file4lineAA12DIExtensionsCSgypXp_SSSgAA11DIFramework_pXpSgSSSitF":{"name":"extensions(for:name:framework:file:line:)","abstract":"
Method for creating an object capable of customizing extensions
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register_4file4lineAA18DIComponentBuilderCyxGxm_SSSitlF":{"name":"register(_:file:line:)","abstract":"Registering a new component without initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_SixyctlF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolve4fromxSo8NSBundleCSg_tlF":{"name":"resolve(from:)","abstract":"
Resolve object by type.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolve3tag4fromxq_m_So8NSBundleCSgtr0_lF":{"name":"resolve(tag:from:)","abstract":"
Resolve object by type with tag.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolve4name4fromxSS_So8NSBundleCSgtlF":{"name":"resolve(name:from:)","abstract":"
Resolve object by type with name.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC11resolveManySayxGylF":{"name":"resolveMany()","abstract":"
Resolve many objects by type.
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6inject4into4fromyx_So8NSBundleCSgtlF":{"name":"inject(into:from:)","abstract":"Injected all dependencies into object.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC26initializeSingletonObjectsyyF":{"name":"initializeSingletonObjects()","abstract":"
Initialize registered object with lifetime .single
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC5cleanyyF":{"name":"clean()","abstract":"Remove all cached object in container with lifetime perContainer(_)
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8validate16checkGraphCyclesS2b_tF":{"name":"validate(checkGraphCycles:)","abstract":"Validate the graph by checking various conditions. For faster performance, set false.
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6append9frameworkAcA11DIFramework_pXp_tF":{"name":"append(framework:)","abstract":"Registers a framework in the container.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6importyyAA11DIFramework_pXpF":{"name":"import(_:)","abstract":"
Allows you to specify dependencies between frameworks.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6append4partAcA6DIPart_pXp_tF":{"name":"append(part:)","abstract":"
Registers a part in the container.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC18registerStoryboard4name6bundle4file4lineAA18DIComponentBuilderCySo12UIStoryboardCGSS_So8NSBundleCSgSSSitF":{"name":"registerStoryboard(name:bundle:file:line:)","abstract":"
Registers a new storyboard.","parent_name":"DIContainer"},"Classes/DIContainer.html#/registerStoryboard(name:bundle:file:line:)":{"name":"registerStoryboard(name:bundle:file:line:)","abstract":"
Registers a new storyboard.","parent_name":"DIContainer"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_tcr0_lF":{"name":"injection(_:)","abstract":"
Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_tcr1_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_tcr2_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_tcr3_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_tcr4_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_qd_5_tcr5_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_qd_5_qd_6_tcr6_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asyACyxGXDqd__mlF":{"name":"as(_:)","abstract":"Function allows you to specify a type by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as_3tagACyxGXDqd__m_qd_0_mtr0_lF":{"name":"as(_:tag:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as_4nameACyxGXDqd__m_SStlF":{"name":"as(_:name:)","abstract":"
Function allows you to specify a type with name by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as5check_ACyxGXDqd__m_qd__xXEtlF":{"name":"as(check:_:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as5check3tag_ACyxGXDqd__m_qd_0_mqd__xXEtr0_lF":{"name":"as(check:tag:_:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as5check4name_ACyxGXDqd__m_SSqd__xXEtlF":{"name":"as(check:name:_:)","abstract":"
Function allows you to specify a type with name by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyxcF":{"name":"injection(_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injection4name5cycle_ACyxGXDSSSg_Sbyx_qd__tctlF":{"name":"injection(name:cycle:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injection4name5cycle__ACyxGXDSSSg_Sbs24ReferenceWritableKeyPathCyxqd__Gqd__qd_0_ctr0_lF":{"name":"injection(name:cycle:_:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injection4name5cycle_ACyxGXDSSSg_Sbs24ReferenceWritableKeyPathCyxqd__GtlF":{"name":"injection(name:cycle:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC8postInityACyxGXDyxcF":{"name":"postInit(_:)","abstract":"
Function for appending an injection method which is always executed at end of a object creation.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC8lifetimeyACyxGXDAA10DILifeTimeOF":{"name":"lifetime(_:)","abstract":"
Function to set lifetime of an object.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC7defaultACyxGXDyF":{"name":"default()","abstract":"
Function declaring that this component will use the default.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderCAASo16UIViewControllerCRbzlE20autoInjectToSubviewsACyxGXDyF":{"name":"autoInjectToSubviews()","abstract":"
Function allows injection inside UIViewController view and its subviews.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderCAASo6UIViewCRbzlE20autoInjectToSubviewsACyxGXDyF":{"name":"autoInjectToSubviews()","abstract":"
Function allows injection inside UIView and its subviews.","parent_name":"DIComponentBuilder"},"Classes.html#/s:14DITranquillity13InternalByTagC":{"name":"InternalByTag","abstract":"
Undocumented
"},"Classes.html#/s:14DITranquillity14InternalByManyC":{"name":"InternalByMany","abstract":"Undocumented
"},"Classes.html#/s:14DITranquillity22InternalByManyInBundleC":{"name":"InternalByManyInBundle","abstract":"Undocumented
"},"Classes.html#/s:14DITranquillity11InternalArgC":{"name":"InternalArg","abstract":"Undocumented
"},"Classes/DIComponentBuilder.html":{"name":"DIComponentBuilder","abstract":"Component Builder."},"Classes/DIContainer.html":{"name":"DIContainer","abstract":"
A container holding all registered components,"},"Classes/DIExtensions.html":{"name":"DIExtensions","abstract":"
сlass to extend possible actions related to object creation
"},"Classes.html#/s:14DITranquillity7DIByTagC":{"name":"DIByTag","abstract":"Special class for resolve object by type with tag. see method: byTag
"},"Classes.html#/s:14DITranquillity6DIManyC":{"name":"DIMany","abstract":"Special class for resolve many object. see method: many
"},"Classes.html#/s:14DITranquillity14DIManyInBundleC":{"name":"DIManyInBundle","abstract":"Special class for resolve many object in bundle. see method: manyInBundle
"},"Classes.html#/s:14DITranquillity5DIArgC":{"name":"DIArg","abstract":"Special class for resolve object use arguments. see method: arg
"},"Classes/DIScope.html":{"name":"DIScope","abstract":"Scopes need for control lifetime of your objects
"},"Classes/DICacheStorage.html":{"name":"DICacheStorage","abstract":"Contains objects in dictionary by keys
"},"Classes/DICompositeStorage.html":{"name":"DICompositeStorage","abstract":"Unite few storages for fetch from first containing and save to all.
"},"Classes/DIStoryboard.html":{"name":"DIStoryboard","abstract":"The class provides the features to inject dependencies of view/window controllers in a storyboard."},"Classes.html":{"name":"Classes","abstract":"
The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Extensions.html":{"name":"Extensions","abstract":"The following extensions are available globally.
"},"Functions.html":{"name":"Functions","abstract":"The following functions are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
\ No newline at end of file
diff --git a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/docSet.dsidx b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/docSet.dsidx
index c9fbea8e..73ad2276 100644
Binary files a/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/docSet.dsidx and b/Documentation/code/docsets/DITranquillity.docset/Contents/Resources/docSet.dsidx differ
diff --git a/Documentation/code/docsets/DITranquillity.tgz b/Documentation/code/docsets/DITranquillity.tgz
index 7a2e0f6e..d7a82c8f 100644
Binary files a/Documentation/code/docsets/DITranquillity.tgz and b/Documentation/code/docsets/DITranquillity.tgz differ
diff --git a/Documentation/code/docsets/DITranquillity.xml b/Documentation/code/docsets/DITranquillity.xml
index 8714cbdb..056a12fa 100644
--- a/Documentation/code/docsets/DITranquillity.xml
+++ b/Documentation/code/docsets/DITranquillity.xml
@@ -1 +1 @@
-3.4.3/~https://github.com/ivlevAstef/DITranquillity/code/docsets/DITranquillity.tgz
+3.6.0/~https://github.com/ivlevAstef/DITranquillity/code/docsets/DITranquillity.tgz
diff --git a/Documentation/code/index.html b/Documentation/code/index.html
index 77308e11..abf2827f 100644
--- a/Documentation/code/index.html
+++ b/Documentation/code/index.html
@@ -13,7 +13,7 @@
- DIScan
-
-
- DIScanFramework
-
-
- – Predicate
-
-
- DIScanPart
-
-
- – Predicate
+ DIScope
DIStoryboard
@@ -98,29 +92,55 @@
+
+ Extensions
+
+
Functions
@@ -134,7 +154,7 @@
DIPart
- DIScanned
+ DIStorage
@@ -180,7 +200,8 @@

-

+

+
DITranquillity
The small library for dependency injection in applications written on pure Swift for iOS/OSX/tvOS. Despite its size, it solves a large enough range of tasks, including Storyboard support. Its main advantage - modularity of support, detailed errors description and lots of opportunities.
@@ -194,21 +215,28 @@
Features
Property, Method injections ru
Named, Tags definitions and Many ru
Type forwarding ru
-
Lifetimes: single, perRun(weak/strong), perContainer(weak/strong), objectGraph, prototype ru
+
Lifetimes: single, perRun(weak/strong), perContainer(weak/strong), objectGraph, prototype, custom ru
iOS/macOS Storyboard and StoryboardReference ru
Circular dependencies ru
Three level hierarchy: types, part, framework ru
Short resolve syntax ru
keyPath injection (since swift4.0) ru
-
Delayed injection ru
Very detail logs ru
Validation at the run app ru
Injection into Subviews and cells ru
-
Scan Parts/Frameworks ru
Support Delayed injection ru
Injection with arguments at any depth
+
Container Hierarchy
Thread safe
+
Helpful links
+
+
Usage
// container - for register and resolve your types
let container = DIContainer()
@@ -362,13 +390,6 @@ Storyboard (iOS/OS X)
“`
-For more details
-
-
Install
Via CocoaPods.
@@ -396,15 +417,6 @@ Migration
Changelog
See CHANGELOG.md file.
-Alternative
-
-
Feedback
I’ve found a bug, or have a feature request
@@ -419,8 +431,8 @@ Question?
diff --git a/Documentation/code/search.json b/Documentation/code/search.json
index a200ecf6..6af0aa43 100644
--- a/Documentation/code/search.json
+++ b/Documentation/code/search.json
@@ -1 +1 @@
-{"Typealiases.html#/s:14DITranquillity7DIATypea":{"name":"DIAType","abstract":"Any type that can be in the application
"},"Typealiases.html#/s:14DITranquillity5DITaga":{"name":"DITag","abstract":"Tag is needed to specify alternative component names
"},"Typealiases.html#/s:14DITranquillity9DILogFunca":{"name":"DILogFunc","abstract":"Type of function for logging
"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4typeypXpv":{"name":"type","abstract":"Any type announced at registration the component
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4fileSSv":{"name":"file","abstract":"File where the component is registration
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4lineSiv":{"name":"line","abstract":"Line where the component is registration
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:s8HashableP9hashValueSiv":{"name":"hashValue","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:s9EquatableP2eeoiSbx_xtFZ":{"name":"==(_:_:)","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:s23CustomStringConvertibleP11descriptionSSv":{"name":"description","parent_name":"DIComponentInfo"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV3funyAA10DILogLevelO_SStcSgvZ":{"name":"fun","abstract":"Logging function. Can be nil. Default is print("\\(logLevel): \\(message)")
","parent_name":"Log"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV5levelAA10DILogLevelOvZ":{"name":"level","abstract":"Minimum level of logging. Default is info
","parent_name":"Log"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV3tabSSvZ":{"name":"tab","abstract":"Tabulation for logging. It is necessary to better understand the information log. Default is
","parent_name":"Log"},"Structs/DISetting/Defaults.html#/s:14DITranquillity9DISettingV8DefaultsV8lifeTimeAA06DILifeE0OvZ":{"name":"lifeTime","abstract":"Default lifetime of a object
","parent_name":"Defaults"},"Structs/DISetting/Defaults.html#/s:14DITranquillity9DISettingV8DefaultsV16injectToSubviewsSbvZ":{"name":"injectToSubviews","abstract":"Global flag for configuring ViewController view and its subviews injection.
","parent_name":"Defaults"},"Structs/DISetting/Defaults.html":{"name":"Defaults","abstract":"Undocumented
","parent_name":"DISetting"},"Structs/DISetting/Log.html":{"name":"Log","abstract":"Namespace for log settings
","parent_name":"DISetting"},"Structs/DISetting.html":{"name":"DISetting","abstract":"Namespace for settings
"},"Structs/DIComponentInfo.html":{"name":"DIComponentInfo","abstract":"Short information about component. Needed for good log
"},"Protocols/DIPart.html#/s:14DITranquillity6DIPartP4loadyAA11DIContainerC9container_tFZ":{"name":"load(container:)","abstract":"Method inside of which you can registration a components.","parent_name":"DIPart"},"Protocols/DIFramework.html#/s:14DITranquillity11DIFrameworkP6bundleSo6BundleCvZ":{"name":"bundle","abstract":"
bundle which is a framework. Default picks based on where the class.","parent_name":"DIFramework"},"Protocols/DIFramework.html#/s:14DITranquillity11DIFrameworkP4loadyAA11DIContainerC9container_tFZ":{"name":"load(container:)","abstract":"
Method inside of which you can registration a components.","parent_name":"DIFramework"},"Protocols/DIFramework.html":{"name":"DIFramework","abstract":"
Slight expansion over part."},"Protocols/DIPart.html":{"name":"DIPart","abstract":"
Class to maintain code hierarchy."},"Protocols.html#/s:14DITranquillity9DIScannedP":{"name":"DIScanned","abstract":"
Protocol to indicate which classes should be included in scan."},"Functions.html#/s:14DITranquillity1mopxAA11DIContainerClF":{"name":"*(_:)","abstract":"
Short syntax for resolve."},"Functions.html#/s:14DITranquillity2byq_xm3tag_AA7DIByTagCyxq_G2ontr0_lF":{"name":"by(tag:on:)","abstract":"
Short syntax for get object by tag"},"Functions.html#/s:14DITranquillity2byq0_xm4tags_q_mAA7DIByTagCyxAEyq_q0_GG2ontr1_lF":{"name":"by(tags:_:on:)","abstract":"
Short syntax for get object by two tags"},"Functions.html#/s:14DITranquillity2byq1_xm4tags_q_mq0_mAA7DIByTagCyxAEyq_AEyq0_q1_GGG2ontr2_lF":{"name":"by(tags:_:_:on:)","abstract":"
Short syntax for get object by three tags"},"Functions.html#/s:14DITranquillity4manySayxGAA6DIManyCyxGlF":{"name":"many(_:)","abstract":"
Short syntax for get many objects"},"Functions.html#/s:14DITranquillity12manyInBundleSayxGAA06DIManycD0CyxGlF":{"name":"manyInBundle(_:)","abstract":"
Short syntax for get many objects in bundle"},"Functions.html#/s:14DITranquillity3argxAA5DIArgCyxGlF":{"name":"arg(_:)","abstract":"
Short syntax for get object use arguments"},"Enums/DILifeTime/ReferenceCounting.html#/s:14DITranquillity10DILifeTimeO17ReferenceCountingO4weakA2EmF":{"name":"weak","abstract":"
Initialization when first accessed, and the library doesn’t hold it
","parent_name":"ReferenceCounting"},"Enums/DILifeTime/ReferenceCounting.html#/s:14DITranquillity10DILifeTimeO17ReferenceCountingO6strongA2EmF":{"name":"strong","abstract":"Initialization when first accessed, and the library hold it
","parent_name":"ReferenceCounting"},"Enums/DILifeTime/ReferenceCounting.html":{"name":"ReferenceCounting","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6singleA2CmF":{"name":"single","abstract":"The object is only one in the application. Initialization by call DIContainer.initializeSingletonObjects()
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6perRunA2C17ReferenceCountingOcACmF":{"name":"perRun","abstract":"The object is only one in the one run.
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO12perContainerA2C17ReferenceCountingOcACmF":{"name":"perContainer","abstract":"The object is only one in one container.
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO11objectGraphA2CmF":{"name":"objectGraph","abstract":"The object is created every time, but during the creation will be created once
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO9prototypeA2CmF":{"name":"prototype","abstract":"The object is created every time
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO10lazySingleACvZ":{"name":"lazySingle","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO10weakSingleACvZ":{"name":"weakSingle","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:s9EquatableP2eeoiSbx_xtFZ":{"name":"==(_:_:)","parent_name":"DILifeTime"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO4noneA2CmF":{"name":"none","abstract":"disable all logs
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO5errorA2CmF":{"name":"error","abstract":"After an error, a application can not be executable
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO7warningA2CmF":{"name":"warning","abstract":"Warning should pe paid attention and analyzed
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO4infoA2CmF":{"name":"info","abstract":"Information contains possible errors
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO7verboseA2CmF":{"name":"verbose","abstract":"Verbose is needed to understand what is happening
","parent_name":"DILogLevel"},"Enums/DILogLevel.html":{"name":"DILogLevel","abstract":"Log levels. Needed for a better understanding of logs, and clipping
"},"Enums/DILifeTime.html":{"name":"DILifeTime","abstract":"A object life time
"},"Classes/DIStoryboard.html#/c:@M@DITranquillity@objc(cs)DIStoryboard(cm)createWithName:bundle:":{"name":"create(name:bundle:)","abstract":"Creates new instance of DIStoryboard
.","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/s:14DITranquillity12DIStoryboardC6createACSS4name_So6BundleCSg6bundleAA11DIContainerC9containertFZ":{"name":"create(name:bundle:container:)","abstract":"
Creates new instance of DIStoryboard
, with the specified container.
","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/c:@M@DITranquillity@objc(cs)DIStoryboard(im)instantiateViewControllerWithIdentifier:":{"name":"instantiateViewController(withIdentifier:)","abstract":"Instantiates the view controller with the specified identifier.","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/instantiateController(withIdentifier:)":{"name":"instantiateController(withIdentifier:)","abstract":"
Instantiates the view/window controler with the specified identifier.","parent_name":"DIStoryboard"},"Classes/DIScanPart/Predicate.html#/s:14DITranquillity10DIScanPartC9PredicateO4typeAESbAA6DIPart_pXpccAEmF":{"name":"type","abstract":"
Undocumented
","parent_name":"Predicate"},"Classes/DIScanPart/Predicate.html#/s:14DITranquillity10DIScanPartC9PredicateO4nameAESbSSccAEmF":{"name":"name","abstract":"Undocumented
","parent_name":"Predicate"},"Classes/DIScanPart/Predicate.html":{"name":"Predicate","abstract":"Variants of the predicate on the basis of which these parts will be included.
","parent_name":"DIScanPart"},"Classes/DIScanPart.html#/s:14DITranquillity10DIScanPartC9predicateAC9PredicateOSgvZ":{"name":"predicate","abstract":"Predicate on the basis of which these parts will be included.
","parent_name":"DIScanPart"},"Classes/DIScanPart.html#/s:14DITranquillity10DIScanPartC6bundleSo6BundleCSgvZ":{"name":"bundle","abstract":"It allows you to cut off parts not belonging to the specified bundle.
","parent_name":"DIScanPart"},"Classes/DIScanPart.html#/s:14DITranquillity10DIScanPartC4loadyAA11DIContainerC9container_tFZ":{"name":"load(container:)","abstract":"implementation of the function for scan.
","parent_name":"DIScanPart"},"Classes/DIScanFramework/Predicate.html#/s:14DITranquillity15DIScanFrameworkC9PredicateO4typeAESbAA11DIFramework_pXpccAEmF":{"name":"type","abstract":"Undocumented
","parent_name":"Predicate"},"Classes/DIScanFramework/Predicate.html#/s:14DITranquillity15DIScanFrameworkC9PredicateO4nameAESbSSccAEmF":{"name":"name","abstract":"Undocumented
","parent_name":"Predicate"},"Classes/DIScanFramework/Predicate.html":{"name":"Predicate","abstract":"Variants of the predicate on the basis of which these frameworks will be included.
","parent_name":"DIScanFramework"},"Classes/DIScanFramework.html#/s:14DITranquillity15DIScanFrameworkC9predicateAC9PredicateOSgvZ":{"name":"predicate","abstract":"Predicate on the basis of which these frameworks will be included.
","parent_name":"DIScanFramework"},"Classes/DIScanFramework.html#/s:14DITranquillity15DIScanFrameworkC4loadyAA11DIContainerC9container_tFZ":{"name":"load(container:)","abstract":"implementation of the function for scan.
","parent_name":"DIScanFramework"},"Classes/DIExtensions.html#/s:14DITranquillity12DIExtensionsC7setArgsySayypSgGd_tF":{"name":"setArgs(_:)","abstract":"method for setting arguments injected into an object.","parent_name":"DIExtensions"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerCACycfc":{"name":"init()","abstract":"
Undocumented
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC9register1AA18DIComponentBuilderCyxGSS4file_Si4linexq_ctr0_lF":{"name":"register1(file:line:_:)","abstract":"swift4 bug: https://bugs.swift.org/browse/SR-5112
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_tctr1_lF":{"name":"register(file:line:_:)","abstract":"Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_tctr2_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_tctr3_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_tctr4_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_tctr5_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_tctr6_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_tctr7_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_tctr8_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_tctr9_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_tctr10_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_tctr11_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_tctr12_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_tctr13_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_q13_tctr14_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_q13_q14_tctr15_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC10extensionsAA12DIExtensionsCSgypXp3for_SSSg4nameAA11DIFramework_pXpSg9frameworkSS4fileSi4linetF":{"name":"extensions(for:name:framework:file:line:)","abstract":"
Method for creating an object capable of customizing extensions
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGxm_SS4fileSi4linetlF":{"name":"register(_:file:line:)","abstract":"Registering a new component without initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8registerAA18DIComponentBuilderCyxGSS4file_Si4linexyctlF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolvexSo6BundleCSg4from_tlF":{"name":"resolve(from:)","abstract":"
Resolve object by type.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolvexq_m3tag_So6BundleCSg4fromtr0_lF":{"name":"resolve(tag:from:)","abstract":"
Resolve object by type with tag.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolvexSS4name_So6BundleCSg4fromtlF":{"name":"resolve(name:from:)","abstract":"
Resolve object by type with name.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC11resolveManySayxGylF":{"name":"resolveMany()","abstract":"
Resolve many objects by type.
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6injectyx4into_So6BundleCSg4fromtlF":{"name":"inject(into:from:)","abstract":"Injected all dependencies into object.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC26initializeSingletonObjectsyyF":{"name":"initializeSingletonObjects()","abstract":"
Initialize registered object with lifetime .single
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC5cleanyyF":{"name":"clean()","abstract":"Remove all cached object in container with lifetime perContainer(_)
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8validateS2b16checkGraphCycles_tF":{"name":"validate(checkGraphCycles:)","abstract":"Validate the graph by checking various conditions. For faster performance, set false.
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6appendAcA11DIFramework_pXp9framework_tF":{"name":"append(framework:)","abstract":"Registers a framework in the container.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6importyAA11DIFramework_pXpF":{"name":"import(_:)","abstract":"
Allows you to specify dependencies between frameworks.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6appendAcA6DIPart_pXp4part_tF":{"name":"append(part:)","abstract":"
Registers a part in the container.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC18registerStoryboardAA18DIComponentBuilderCySo12UIStoryboardCGSS4name_So6BundleCSg6bundleSS4fileSi4linetF":{"name":"registerStoryboard(name:bundle:file:line:)","abstract":"
Registers a new storyboard.","parent_name":"DIContainer"},"Classes/DIContainer.html#/registerStoryboard(name:bundle:file:line:)":{"name":"registerStoryboard(name:bundle:file:line:)","abstract":"
Registers a new storyboard.","parent_name":"DIContainer"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_tcr0_lF":{"name":"injection(_:)","abstract":"
Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_tcr1_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_tcr2_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_tcr3_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_tcr4_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_qd_5_tcr5_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_qd_5_qd_6_tcr6_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__mlF":{"name":"as(_:)","abstract":"Function allows you to specify a type by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m_qd_0_m3tagtr0_lF":{"name":"as(_:tag:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m_SS4nametlF":{"name":"as(_:name:)","abstract":"
Function allows you to specify a type with name by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m5check_qd__xctlF":{"name":"as(check:_:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m5check_qd_0_m3tagqd__xctr0_lF":{"name":"as(check:tag:_:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asACyxGXDqd__m5check_SS4nameqd__xctlF":{"name":"as(check:name:_:)","abstract":"
Function allows you to specify a type with name by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDyxcF":{"name":"injection(_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDSSSg4name_Sb5cycleyx_qd__tctlF":{"name":"injection(name:cycle:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDSSSg4name_Sb5cycles24ReferenceWritableKeyPathCyxqd__Gqd__qd_0_ctr0_lF":{"name":"injection(name:cycle:_:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionACyxGXDSSSg4name_Sb5cycles24ReferenceWritableKeyPathCyxqd__GtlF":{"name":"injection(name:cycle:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC8postInitACyxGXDyxcF":{"name":"postInit(_:)","abstract":"
Function for appending an injection method which is always executed at end of a object creation.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC8lifetimeACyxGXDAA10DILifeTimeOF":{"name":"lifetime(_:)","abstract":"
Function to set lifetime of an object.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC7defaultACyxGXDyF":{"name":"default()","abstract":"
Function declaring that this component will use the default.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderCAASo16UIViewControllerCRbzlE20autoInjectToSubviewsACyxGXDyF":{"name":"autoInjectToSubviews()","abstract":"
Function allows injection inside UIViewController view and its subviews.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderCAASo6UIViewCRbzlE20autoInjectToSubviewsACyxGXDyF":{"name":"autoInjectToSubviews()","abstract":"
Function allows injection inside UIView and its subviews.","parent_name":"DIComponentBuilder"},"Classes.html#/s:14DITranquillity13InternalByTagC":{"name":"InternalByTag","abstract":"
Undocumented
"},"Classes.html#/s:14DITranquillity14InternalByManyC":{"name":"InternalByMany","abstract":"Undocumented
"},"Classes.html#/s:14DITranquillity22InternalByManyInBundleC":{"name":"InternalByManyInBundle","abstract":"Undocumented
"},"Classes.html#/s:14DITranquillity11InternalArgC":{"name":"InternalArg","abstract":"Undocumented
"},"Classes/DIComponentBuilder.html":{"name":"DIComponentBuilder","abstract":"Component Builder."},"Classes/DIContainer.html":{"name":"DIContainer","abstract":"
A container holding all registered components,"},"Classes/DIExtensions.html":{"name":"DIExtensions","abstract":"
сlass to extend possible actions related to object creation
"},"Classes.html#/s:14DITranquillity7DIByTagC":{"name":"DIByTag","abstract":"Special class for resolve object by type with tag. see method: byTag
"},"Classes.html#/s:14DITranquillity6DIManyC":{"name":"DIMany","abstract":"Special class for resolve many object. see method: many
"},"Classes.html#/s:14DITranquillity14DIManyInBundleC":{"name":"DIManyInBundle","abstract":"Special class for resolve many object in bundle. see method: manyInBundle
"},"Classes.html#/s:14DITranquillity5DIArgC":{"name":"DIArg","abstract":"Special class for resolve object use arguments. see method: arg
"},"Classes.html#/s:14DITranquillity6DIScanC":{"name":"DIScan","abstract":"Base class for scan. It doesn’t make much sense to inherit from it. see: DIScanFramework
and DIScanPart
"},"Classes/DIScanFramework.html":{"name":"DIScanFramework","abstract":"Allows you to find all frameworks marked as DIScanned
in the application that satisfy certain characteristics:"},"Classes/DIScanPart.html":{"name":"DIScanPart","abstract":"
Allows you to find all parts marked as DIScanned
in the application that satisfy certain characteristics:"},"Classes/DIStoryboard.html":{"name":"DIStoryboard","abstract":"
The class provides the features to inject dependencies of view/window controllers in a storyboard."},"Classes.html":{"name":"Classes","abstract":"
The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Functions.html":{"name":"Functions","abstract":"The following functions are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
\ No newline at end of file
+{"Typealiases.html#/s:14DITranquillity7DIATypea":{"name":"DIAType","abstract":"Any type that can be in the application
"},"Typealiases.html#/s:14DITranquillity5DITaga":{"name":"DITag","abstract":"Tag is needed to specify alternative component names
"},"Typealiases.html#/s:14DITranquillity9DILogFunca":{"name":"DILogFunc","abstract":"Type of function for logging
"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4typeypXpvp":{"name":"type","abstract":"Any type announced at registration the component
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4fileSSvp":{"name":"file","abstract":"File where the component is registration
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:14DITranquillity15DIComponentInfoV4lineSivp":{"name":"line","abstract":"Line where the component is registration
","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:SH9hashValueSivp":{"name":"hashValue","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"DIComponentInfo"},"Structs/DIComponentInfo.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"DIComponentInfo"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV3funyAA10DILogLevelO_SStcSgvpZ":{"name":"fun","abstract":"Logging function. Can be nil. Default is print("\\(logLevel): \\(message)")
","parent_name":"Log"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV5levelAA10DILogLevelOvpZ":{"name":"level","abstract":"Minimum level of logging. Default is info
","parent_name":"Log"},"Structs/DISetting/Log.html#/s:14DITranquillity9DISettingV3LogV3tabSSvpZ":{"name":"tab","abstract":"Tabulation for logging. It is necessary to better understand the information log. Default is
","parent_name":"Log"},"Structs/DISetting/Defaults.html#/s:14DITranquillity9DISettingV8DefaultsV8lifeTimeAA06DILifeE0OvpZ":{"name":"lifeTime","abstract":"Default lifetime of a object
","parent_name":"Defaults"},"Structs/DISetting/Defaults.html#/s:14DITranquillity9DISettingV8DefaultsV16injectToSubviewsSbvpZ":{"name":"injectToSubviews","abstract":"Global flag for configuring ViewController view and its subviews injection.
","parent_name":"Defaults"},"Structs/DISetting/Defaults.html":{"name":"Defaults","abstract":"Undocumented
","parent_name":"DISetting"},"Structs/DISetting/Log.html":{"name":"Log","abstract":"Namespace for log settings
","parent_name":"DISetting"},"Structs/DISetting.html":{"name":"DISetting","abstract":"Namespace for settings
"},"Structs/DIComponentInfo.html":{"name":"DIComponentInfo","abstract":"Short information about component. Needed for good log
"},"Protocols/DIPart.html#/s:14DITranquillity6DIPartP4load9containeryAA11DIContainerC_tFZ":{"name":"load(container:)","abstract":"Method inside of which you can registration a components.","parent_name":"DIPart"},"Protocols/DIFramework.html#/s:14DITranquillity11DIFrameworkP6bundleSo8NSBundleCvpZ":{"name":"bundle","abstract":"
bundle which is a framework. Default picks based on where the class.","parent_name":"DIFramework"},"Protocols/DIFramework.html#/s:14DITranquillity11DIFrameworkP4load9containeryAA11DIContainerC_tFZ":{"name":"load(container:)","abstract":"
Method inside of which you can registration a components.","parent_name":"DIFramework"},"Protocols/DIStorage.html#/s:14DITranquillity9DIStorageP5fetch3keyypSgAA15DIComponentInfoV_tF":{"name":"fetch(key:)","abstract":"
Return storaged object if there is.
","parent_name":"DIStorage"},"Protocols/DIStorage.html#/s:14DITranquillity9DIStorageP4save6object2byyyp_AA15DIComponentInfoVtF":{"name":"save(object:by:)","abstract":"Save object to storage.
","parent_name":"DIStorage"},"Protocols/DIStorage.html#/s:14DITranquillity9DIStorageP5cleanyyF":{"name":"clean()","abstract":"Remove all save objects in storage
","parent_name":"DIStorage"},"Protocols/DIStorage.html":{"name":"DIStorage","abstract":"Universal protocol for contains objects by key
"},"Protocols/DIFramework.html":{"name":"DIFramework","abstract":"Slight expansion over part."},"Protocols/DIPart.html":{"name":"DIPart","abstract":"
Class to maintain code hierarchy."},"Functions.html#/s:14DITranquillity1mopyxAA11DIContainerClF":{"name":"*(_:)","abstract":"
Short syntax for resolve."},"Functions.html#/s:14DITranquillity2by3tag2onq_xm_AA7DIByTagCyxq_Gtr0_lF":{"name":"by(tag:on:)","abstract":"
Short syntax for get object by tag"},"Functions.html#/s:14DITranquillity2by4tags_2onq0_xm_q_mAA7DIByTagCyxAFyq_q0_GGtr1_lF":{"name":"by(tags:_:on:)","abstract":"
Short syntax for get object by two tags"},"Functions.html#/s:14DITranquillity2by4tags__2onq1_xm_q_mq0_mAA7DIByTagCyxAFyq_AFyq0_q1_GGGtr2_lF":{"name":"by(tags:_:_:on:)","abstract":"
Short syntax for get object by three tags"},"Functions.html#/s:14DITranquillity4manyySayxGAA6DIManyCyxGlF":{"name":"many(_:)","abstract":"
Short syntax for get many objects"},"Functions.html#/s:14DITranquillity12manyInBundleySayxGAA06DIManycD0CyxGlF":{"name":"manyInBundle(_:)","abstract":"
Short syntax for get many objects in bundle"},"Functions.html#/s:14DITranquillity3argyxAA5DIArgCyxGlF":{"name":"arg(_:)","abstract":"
Short syntax for get object use arguments"},"Extensions/Provider5.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"
Undocumented
","parent_name":"Provider5"},"Extensions/Provider4.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider4"},"Extensions/Provider3.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider3"},"Extensions/Provider2.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider2"},"Extensions/Provider1.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider1"},"Extensions/Provider.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Provider"},"Extensions/Lazy.html#/init(file:line:)":{"name":"init(file:line:)","abstract":"Undocumented
","parent_name":"Lazy"},"Extensions/Lazy.html":{"name":"Lazy"},"Extensions/Provider.html":{"name":"Provider"},"Extensions/Provider1.html":{"name":"Provider1"},"Extensions/Provider2.html":{"name":"Provider2"},"Extensions/Provider3.html":{"name":"Provider3"},"Extensions/Provider4.html":{"name":"Provider4"},"Extensions/Provider5.html":{"name":"Provider5"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO4noneyA2CmF":{"name":"none","abstract":"disable all logs
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO5erroryA2CmF":{"name":"error","abstract":"After an error, a application can not be executable
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO7warningyA2CmF":{"name":"warning","abstract":"Warning should pe paid attention and analyzed
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO4infoyA2CmF":{"name":"info","abstract":"Information contains possible errors
","parent_name":"DILogLevel"},"Enums/DILogLevel.html#/s:14DITranquillity10DILogLevelO7verboseyA2CmF":{"name":"verbose","abstract":"Verbose is needed to understand what is happening
","parent_name":"DILogLevel"},"Enums/DILifeTime/ReferenceCounting.html#/s:14DITranquillity10DILifeTimeO17ReferenceCountingO4weakyA2EmF":{"name":"weak","abstract":"Initialization when first accessed, and the library doesn’t hold it
","parent_name":"ReferenceCounting"},"Enums/DILifeTime/ReferenceCounting.html#/s:14DITranquillity10DILifeTimeO17ReferenceCountingO6strongyA2EmF":{"name":"strong","abstract":"Initialization when first accessed, and the library hold it
","parent_name":"ReferenceCounting"},"Enums/DILifeTime/ReferenceCounting.html":{"name":"ReferenceCounting","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6singleyA2CmF":{"name":"single","abstract":"The object is only one in the application. Initialization by call DIContainer.initializeSingletonObjects()
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6perRunyA2C17ReferenceCountingOcACmF":{"name":"perRun(_:)","abstract":"The object is only one in the one run.
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO12perContaineryA2C17ReferenceCountingOcACmF":{"name":"perContainer(_:)","abstract":"The object is only one in one container.
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO11objectGraphyA2CmF":{"name":"objectGraph","abstract":"The object is created every time, but during the creation will be created once
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO9prototypeyA2CmF":{"name":"prototype","abstract":"The object is created every time
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO6customyAcA7DIScopeCcACmF":{"name":"custom(_:)","abstract":"Use user scope. For more information see DIScope
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO10lazySingleACvpZ":{"name":"lazySingle","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:14DITranquillity10DILifeTimeO10weakSingleACvpZ":{"name":"weakSingle","abstract":"Undocumented
","parent_name":"DILifeTime"},"Enums/DILifeTime.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"DILifeTime"},"Enums/DILifeTime.html":{"name":"DILifeTime","abstract":"A object life time
"},"Enums/DILogLevel.html":{"name":"DILogLevel","abstract":"Log levels. Needed for a better understanding of logs, and clipping
"},"Classes/DIStoryboard.html#/c:@M@DITranquillity@objc(cs)DIStoryboard(cm)createWithName:bundle:":{"name":"create(name:bundle:)","abstract":"Creates new instance of DIStoryboard
.","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/s:14DITranquillity12DIStoryboardC6create4name6bundle9containerACSS_So8NSBundleCSgAA11DIContainerCtFZ":{"name":"create(name:bundle:container:)","abstract":"
Creates new instance of DIStoryboard
, with the specified container.
","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/c:@M@DITranquillity@objc(cs)DIStoryboard(im)instantiateViewControllerWithIdentifier:":{"name":"instantiateViewController(withIdentifier:)","abstract":"Instantiates the view controller with the specified identifier.","parent_name":"DIStoryboard"},"Classes/DIStoryboard.html#/instantiateController(withIdentifier:)":{"name":"instantiateController(withIdentifier:)","abstract":"
Instantiates the view/window controler with the specified identifier.","parent_name":"DIStoryboard"},"Classes/DICompositeStorage.html#/s:14DITranquillity18DICompositeStorageC8storagesACSayAA9DIStorage_pG_tcfc":{"name":"init(storages:)","abstract":"
Undocumented
","parent_name":"DICompositeStorage"},"Classes/DICompositeStorage.html#/s:14DITranquillity18DICompositeStorageC5fetch3keyypSgAA15DIComponentInfoV_tF":{"name":"fetch(key:)","abstract":"Fetch object by key from first containing storage.
","parent_name":"DICompositeStorage"},"Classes/DICompositeStorage.html#/s:14DITranquillity18DICompositeStorageC4save6object2byyyp_AA15DIComponentInfoVtF":{"name":"save(object:by:)","abstract":"Save object to all storages
","parent_name":"DICompositeStorage"},"Classes/DICompositeStorage.html#/s:14DITranquillity18DICompositeStorageC5cleanyyF":{"name":"clean()","abstract":"Remove all save objects from all storages
","parent_name":"DICompositeStorage"},"Classes/DICacheStorage.html#/s:14DITranquillity14DICacheStorageCACycfc":{"name":"init()","abstract":"Undocumented
","parent_name":"DICacheStorage"},"Classes/DICacheStorage.html#/s:14DITranquillity9DIStorageP5fetch3keyypSgAA15DIComponentInfoV_tF":{"name":"fetch(key:)","parent_name":"DICacheStorage"},"Classes/DICacheStorage.html#/s:14DITranquillity9DIStorageP4save6object2byyyp_AA15DIComponentInfoVtF":{"name":"save(object:by:)","parent_name":"DICacheStorage"},"Classes/DICacheStorage.html#/s:14DITranquillity9DIStorageP5cleanyyF":{"name":"clean()","parent_name":"DICacheStorage"},"Classes/DIScope.html#/s:14DITranquillity7DIScopeC4nameSSvp":{"name":"name","abstract":"Scope name. Used in logging
","parent_name":"DIScope"},"Classes/DIScope.html#/s:14DITranquillity7DIScopeC4name7storage6policy6parentACSS_AA9DIStorage_pAA10DILifeTimeO17ReferenceCountingOACSgtcfc":{"name":"init(name:storage:policy:parent:)","abstract":"Make Scope. Scopes need for control lifetime of your objects
","parent_name":"DIScope"},"Classes/DIScope.html#/s:14DITranquillity7DIScopeC5cleanyyF":{"name":"clean()","abstract":"Remove all saved objects
","parent_name":"DIScope"},"Classes/DIScope.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"DIScope"},"Classes/DIExtensions.html#/s:14DITranquillity12DIExtensionsC7setArgsyyypSgd_tF":{"name":"setArgs(_:)","abstract":"method for setting arguments injected into an object.","parent_name":"DIExtensions"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6parentA2CSg_tcfc":{"name":"init(parent:)","abstract":"
Make entry point for library
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC9register14file4line_AA18DIComponentBuilderCyxGSS_Sixq_ctr0_lF":{"name":"register1(file:line:_:)","abstract":"swift4 bug: https://bugs.swift.org/browse/SR-5112
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_tctr1_lF":{"name":"register(file:line:_:)","abstract":"Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_tctr2_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_tctr3_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_tctr4_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_tctr5_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_tctr6_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_tctr7_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_tctr8_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_tctr9_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_tctr10_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_tctr11_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_tctr12_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_tctr13_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_q13_tctr14_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_Sixq__q0_q1_q2_q3_q4_q5_q6_q7_q8_q9_q10_q11_q12_q13_q14_tctr15_lF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC10extensions3for4name9framework4file4lineAA12DIExtensionsCSgypXp_SSSgAA11DIFramework_pXpSgSSSitF":{"name":"extensions(for:name:framework:file:line:)","abstract":"
Method for creating an object capable of customizing extensions
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register_4file4lineAA18DIComponentBuilderCyxGxm_SSSitlF":{"name":"register(_:file:line:)","abstract":"Registering a new component without initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8register4file4line_AA18DIComponentBuilderCyxGSS_SixyctlF":{"name":"register(file:line:_:)","abstract":"
Declaring a new component with initial.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolve4fromxSo8NSBundleCSg_tlF":{"name":"resolve(from:)","abstract":"
Resolve object by type.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolve3tag4fromxq_m_So8NSBundleCSgtr0_lF":{"name":"resolve(tag:from:)","abstract":"
Resolve object by type with tag.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC7resolve4name4fromxSS_So8NSBundleCSgtlF":{"name":"resolve(name:from:)","abstract":"
Resolve object by type with name.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC11resolveManySayxGylF":{"name":"resolveMany()","abstract":"
Resolve many objects by type.
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6inject4into4fromyx_So8NSBundleCSgtlF":{"name":"inject(into:from:)","abstract":"Injected all dependencies into object.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC26initializeSingletonObjectsyyF":{"name":"initializeSingletonObjects()","abstract":"
Initialize registered object with lifetime .single
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC5cleanyyF":{"name":"clean()","abstract":"Remove all cached object in container with lifetime perContainer(_)
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC8validate16checkGraphCyclesS2b_tF":{"name":"validate(checkGraphCycles:)","abstract":"Validate the graph by checking various conditions. For faster performance, set false.
","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6append9frameworkAcA11DIFramework_pXp_tF":{"name":"append(framework:)","abstract":"Registers a framework in the container.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6importyyAA11DIFramework_pXpF":{"name":"import(_:)","abstract":"
Allows you to specify dependencies between frameworks.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC6append4partAcA6DIPart_pXp_tF":{"name":"append(part:)","abstract":"
Registers a part in the container.","parent_name":"DIContainer"},"Classes/DIContainer.html#/s:14DITranquillity11DIContainerC18registerStoryboard4name6bundle4file4lineAA18DIComponentBuilderCySo12UIStoryboardCGSS_So8NSBundleCSgSSSitF":{"name":"registerStoryboard(name:bundle:file:line:)","abstract":"
Registers a new storyboard.","parent_name":"DIContainer"},"Classes/DIContainer.html#/registerStoryboard(name:bundle:file:line:)":{"name":"registerStoryboard(name:bundle:file:line:)","abstract":"
Registers a new storyboard.","parent_name":"DIContainer"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_tcr0_lF":{"name":"injection(_:)","abstract":"
Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_tcr1_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_tcr2_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_tcr3_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_tcr4_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_qd_5_tcr5_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyx_qd__qd_0_qd_1_qd_2_qd_3_qd_4_qd_5_qd_6_tcr6_lF":{"name":"injection(_:)","abstract":"Function for appending an injection method
","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2asyACyxGXDqd__mlF":{"name":"as(_:)","abstract":"Function allows you to specify a type by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as_3tagACyxGXDqd__m_qd_0_mtr0_lF":{"name":"as(_:tag:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as_4nameACyxGXDqd__m_SStlF":{"name":"as(_:name:)","abstract":"
Function allows you to specify a type with name by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as5check_ACyxGXDqd__m_qd__xXEtlF":{"name":"as(check:_:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as5check3tag_ACyxGXDqd__m_qd_0_mqd__xXEtr0_lF":{"name":"as(check:tag:_:)","abstract":"
Function allows you to specify a type with tag by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC2as5check4name_ACyxGXDqd__m_SSqd__xXEtlF":{"name":"as(check:name:_:)","abstract":"
Function allows you to specify a type with name by which the component will be available.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injectionyACyxGXDyxcF":{"name":"injection(_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injection4name5cycle_ACyxGXDSSSg_Sbyx_qd__tctlF":{"name":"injection(name:cycle:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injection4name5cycle__ACyxGXDSSSg_Sbs24ReferenceWritableKeyPathCyxqd__Gqd__qd_0_ctr0_lF":{"name":"injection(name:cycle:_:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC9injection4name5cycle_ACyxGXDSSSg_Sbs24ReferenceWritableKeyPathCyxqd__GtlF":{"name":"injection(name:cycle:_:)","abstract":"
Function for appending an injection method.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC8postInityACyxGXDyxcF":{"name":"postInit(_:)","abstract":"
Function for appending an injection method which is always executed at end of a object creation.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC8lifetimeyACyxGXDAA10DILifeTimeOF":{"name":"lifetime(_:)","abstract":"
Function to set lifetime of an object.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderC7defaultACyxGXDyF":{"name":"default()","abstract":"
Function declaring that this component will use the default.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderCAASo16UIViewControllerCRbzlE20autoInjectToSubviewsACyxGXDyF":{"name":"autoInjectToSubviews()","abstract":"
Function allows injection inside UIViewController view and its subviews.","parent_name":"DIComponentBuilder"},"Classes/DIComponentBuilder.html#/s:14DITranquillity18DIComponentBuilderCAASo6UIViewCRbzlE20autoInjectToSubviewsACyxGXDyF":{"name":"autoInjectToSubviews()","abstract":"
Function allows injection inside UIView and its subviews.","parent_name":"DIComponentBuilder"},"Classes.html#/s:14DITranquillity13InternalByTagC":{"name":"InternalByTag","abstract":"
Undocumented
"},"Classes.html#/s:14DITranquillity14InternalByManyC":{"name":"InternalByMany","abstract":"Undocumented
"},"Classes.html#/s:14DITranquillity22InternalByManyInBundleC":{"name":"InternalByManyInBundle","abstract":"Undocumented
"},"Classes.html#/s:14DITranquillity11InternalArgC":{"name":"InternalArg","abstract":"Undocumented
"},"Classes/DIComponentBuilder.html":{"name":"DIComponentBuilder","abstract":"Component Builder."},"Classes/DIContainer.html":{"name":"DIContainer","abstract":"
A container holding all registered components,"},"Classes/DIExtensions.html":{"name":"DIExtensions","abstract":"
сlass to extend possible actions related to object creation
"},"Classes.html#/s:14DITranquillity7DIByTagC":{"name":"DIByTag","abstract":"Special class for resolve object by type with tag. see method: byTag
"},"Classes.html#/s:14DITranquillity6DIManyC":{"name":"DIMany","abstract":"Special class for resolve many object. see method: many
"},"Classes.html#/s:14DITranquillity14DIManyInBundleC":{"name":"DIManyInBundle","abstract":"Special class for resolve many object in bundle. see method: manyInBundle
"},"Classes.html#/s:14DITranquillity5DIArgC":{"name":"DIArg","abstract":"Special class for resolve object use arguments. see method: arg
"},"Classes/DIScope.html":{"name":"DIScope","abstract":"Scopes need for control lifetime of your objects
"},"Classes/DICacheStorage.html":{"name":"DICacheStorage","abstract":"Contains objects in dictionary by keys
"},"Classes/DICompositeStorage.html":{"name":"DICompositeStorage","abstract":"Unite few storages for fetch from first containing and save to all.
"},"Classes/DIStoryboard.html":{"name":"DIStoryboard","abstract":"The class provides the features to inject dependencies of view/window controllers in a storyboard."},"Classes.html":{"name":"Classes","abstract":"
The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Extensions.html":{"name":"Extensions","abstract":"The following extensions are available globally.
"},"Functions.html":{"name":"Functions","abstract":"The following functions are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
\ No newline at end of file
diff --git a/Documentation/code/undocumented.json b/Documentation/code/undocumented.json
index be2c9daa..3a5256ea 100644
--- a/Documentation/code/undocumented.json
+++ b/Documentation/code/undocumented.json
@@ -1,38 +1,59 @@
{
"warnings": [
+ {
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Private/Component.swift",
+ "line": null,
+ "symbol": "Component",
+ "symbol_kind": "source.lang.swift.decl.extension",
+ "warning": "undocumented"
+ },
{
"file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Private/Modificators.swift",
- "line": 13,
+ "line": 9,
"symbol": "InternalByTag",
"symbol_kind": "source.lang.swift.decl.class",
"warning": "undocumented"
},
{
"file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Private/Modificators.swift",
- "line": 29,
+ "line": 32,
"symbol": "InternalByMany",
"symbol_kind": "source.lang.swift.decl.class",
"warning": "undocumented"
},
{
"file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Private/Modificators.swift",
- "line": 40,
+ "line": 53,
"symbol": "InternalByManyInBundle",
"symbol_kind": "source.lang.swift.decl.class",
"warning": "undocumented"
},
{
"file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Private/Modificators.swift",
- "line": 55,
+ "line": 75,
"symbol": "InternalArg",
"symbol_kind": "source.lang.swift.decl.class",
"warning": "undocumented"
},
{
- "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DIContainer.swift",
- "line": 28,
- "symbol": "DIContainer.init()",
- "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DILifetime.swift",
+ "line": 11,
+ "symbol": "DILifeTime.ReferenceCounting",
+ "symbol_kind": "source.lang.swift.decl.enum",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DILifetime.swift",
+ "line": 35,
+ "symbol": "DILifeTime.lazySingle",
+ "symbol_kind": "source.lang.swift.decl.var.static",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DILifetime.swift",
+ "line": 38,
+ "symbol": "DILifeTime.weakSingle",
+ "symbol_kind": "source.lang.swift.decl.var.static",
"warning": "undocumented"
},
{
@@ -43,52 +64,66 @@
"warning": "undocumented"
},
{
- "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DITypes.swift",
- "line": 59,
- "symbol": "DILifeTime.ReferenceCounting",
- "symbol_kind": "source.lang.swift.decl.enum",
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DIStorage.swift",
+ "line": 34,
+ "symbol": "DICacheStorage.init()",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DITypes.swift",
- "line": 82,
- "symbol": "DILifeTime.lazySingle",
- "symbol_kind": "source.lang.swift.decl.var.static",
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DIStorage.swift",
+ "line": 55,
+ "symbol": "DICompositeStorage.init(storages:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/aivlev/Projects/DITranquillity/Sources/Core/Public/DITypes.swift",
- "line": 85,
- "symbol": "DILifeTime.weakSingle",
- "symbol_kind": "source.lang.swift.decl.var.static",
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Extensions/SwiftLazy.swift",
+ "line": 15,
+ "symbol": "Lazy.init(file:line:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/aivlev/Projects/DITranquillity/Sources/Scan/DIScanFramework.swift",
- "line": 29,
- "symbol": "DIScanFramework.Predicate.type",
- "symbol_kind": "source.lang.swift.decl.enumelement",
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Extensions/SwiftLazy.swift",
+ "line": 33,
+ "symbol": "Provider.init(file:line:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/aivlev/Projects/DITranquillity/Sources/Scan/DIScanFramework.swift",
- "line": 30,
- "symbol": "DIScanFramework.Predicate.name",
- "symbol_kind": "source.lang.swift.decl.enumelement",
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Extensions/SwiftLazy.swift",
+ "line": 52,
+ "symbol": "Provider1.init(file:line:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/aivlev/Projects/DITranquillity/Sources/Scan/DIScanPart.swift",
- "line": 32,
- "symbol": "DIScanPart.Predicate.type",
- "symbol_kind": "source.lang.swift.decl.enumelement",
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Extensions/SwiftLazy.swift",
+ "line": 71,
+ "symbol": "Provider2.init(file:line:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/aivlev/Projects/DITranquillity/Sources/Scan/DIScanPart.swift",
- "line": 33,
- "symbol": "DIScanPart.Predicate.name",
- "symbol_kind": "source.lang.swift.decl.enumelement",
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Extensions/SwiftLazy.swift",
+ "line": 90,
+ "symbol": "Provider3.init(file:line:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Extensions/SwiftLazy.swift",
+ "line": 109,
+ "symbol": "Provider4.init(file:line:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/aivlev/Projects/DITranquillity/Sources/Extensions/SwiftLazy.swift",
+ "line": 128,
+ "symbol": "Provider5.init(file:line:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
}
],
diff --git a/Documentation/ru/delayed_injection.md b/Documentation/ru/delayed_injection.md
index 7fc4f4e7..492efb80 100644
--- a/Documentation/ru/delayed_injection.md
+++ b/Documentation/ru/delayed_injection.md
@@ -112,6 +112,6 @@ creating int
#### [Главная](main.md)
#### [Предыдущая глава "Storyboard"](storyboard.md#storyboard)
-#### [Следующая глава "Поиск"](scan.md#Поиск)
+#### [Следующая глава "Логирование"](log.md#Логирование)
diff --git a/Documentation/ru/lifetime.md b/Documentation/ru/lifetime.md
index bd9abbdf..e1ca35fa 100644
--- a/Documentation/ru/lifetime.md
+++ b/Documentation/ru/lifetime.md
@@ -48,6 +48,25 @@ builder.register(Cat.init)
.lifetime(.prototype)
```
+## Пользовательский (custom)
+В случае если хочется самому отвечать за время жизни некоторых объектов, можно использовать пользовательское время жизни.
+Для этого придется создать экземпляр класса `DIScope`:
+```Swift
+let yourScope = DIScope(name: "your scope", storage: DICacheStorage())
+```
+И после при регистрации объекта во времени жизни указать его:
+```Swift
+builder.register(Cat.init)
+.lifetime(.custom(yourScope))
+```
+Хранилище можно создать свое собственное реализовав протокол `DIStorage`.
+
+При создании scope можно указать политику хранения данных `weak` или `strong`:
+```Swift
+DIScope(name: "your scope", storage: DICacheStorage(), policy: .weak)
+```
+Смысл политики такой же как и для `.perRun` или `.perContainer`.
+
## По умолчанию (default)
Если у компоненты не указано время жизни, то используется `prototype`.
diff --git a/Documentation/ru/log.md b/Documentation/ru/log.md
index 3037b326..b71e57b0 100644
--- a/Documentation/ru/log.md
+++ b/Documentation/ru/log.md
@@ -29,6 +29,6 @@ DISettings.Log.tab = "-"
```
#### [Главная](main.md)
-#### [Предыдущая глава "Поиск"](scan.md#Поиск)
+#### [Предыдущая глава "Отложенное внедрение"](delayed_injection.md#Отложенное_внедрение)
#### [Следующая глава "Примеры"](sample.md#Примеры)
diff --git a/Documentation/ru/main.md b/Documentation/ru/main.md
index f847e5fb..f4f5accd 100644
--- a/Documentation/ru/main.md
+++ b/Documentation/ru/main.md
@@ -7,13 +7,12 @@ DITranquallity - небольшая библиотека для внедрени
* Внедрение зависимостей через: [метод инициализации](registration.md#Разрешение-зависимостей-при-инициализации), [свойства, метод](injection.md#Внедрение)
* [Указание тега](modificators.md#Теги), [имени](modificators.md#Имена) и получение [множества](modificators.md#Множественная)
* [Поддержка указания нескольких сервисов](registration.md#Указание-сервисов)
-* [5 времен жизни: single, perRun(.weak/.strong), perContainer(.weak/.strong), objectGraph, prototype](lifetime.md#Время-жизни)
+* [5 времен жизни: single, perRun(.weak/.strong), perContainer(.weak/.strong), objectGraph, prototype, custom](lifetime.md#Время-жизни)
* [iOS/macOS Storyboard и StoryboardReference](storyboard.md#storyboard)
* [Поддержка циклических зависимостей](injection.md#Внедрение-циклических-зависимостей-через-свойства)
* Несколько уровней абстракций: тип, [часть](part_framework.md#Части-и-Фреймворки), [фреймворк](part_framework.md#Части-и-Фреймворки)
* [Краткий синтаксис получения экземпляра клаcса](resolve.md#Разрешение-зависимостей)
* [Внедрение через свойства с помощью keyPath (начиная с swift 4.0)](injection.md#Внедрение-зависимостей-через-свойства-используя-keypath))
-* [Поиск частей, фреймворков](scan.md#Поиск)
* [Логирование](log.md#Логирование)
* [Валидация графа зависимостей](validation.md#Валидация-контейнера)
* [Внедрение в subview и ячейки](storyboard.md#Внедрение-в-subview-и-ячейки)
@@ -62,6 +61,7 @@ DITranquallity - небольшая библиотека для внедрени
* [Один на контейнер (perContainer)](lifetime.md#Один-на-контейнер-perContainer)
* [Единственный в графе (objectGraph)](lifetime.md#Единственный-в-графе-objectgraph)
* [Всегда новый (prototype)](lifetime.md#Всегда-новый-prototype)
+* [Пользовательский (custom)](lifetime.md#Пользовательский-custom)
## [Части и Фреймворки](part_framework.md#Части-и-Фреймворки)
* [Объявление](part_framework.md#Объявление)
@@ -80,11 +80,6 @@ DITranquallity - небольшая библиотека для внедрени
* [Lazy](delayed_injection.md#Lazy)
* [Provider](delayed_injection.md#Provider)
-## [Поиск](scan.md#Поиск)
-* [Предыстория](scan.md#Предыстория)
-* [Поиск фреймворков](scan.md#Поиск-фреймворков)
-* [Поиск частей](scan.md#Поиск-частей)
-
## [Логирование](log.md#Логирование)
* [Использование](log.md#Использование)
diff --git a/Documentation/ru/scan.md b/Documentation/ru/scan.md
deleted file mode 100644
index ebbfd202..00000000
--- a/Documentation/ru/scan.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# Поиск
-
-В крупных проектах может насчитываться десятки, а то и сотни фреймворков. И в каждый фреймворк может состоять из сотни частей.
-Упоминать все эти зависимости между частями/фреймворками может стать утомительным делом - добавился новый фреймворк или часть, надо не забыть внести ее в контейнер, удалился фреймворк - надо удалить его из контейнера, и т.д.
-
-В подобных случаях намного удобней придумать простое правило, по которому фреймворки и части будут находиться автоматически. К примеру, все фреймворки оканчиваются на фразу "Framework", а все части именуются как "{Name}Part".
-Тогда следуя таким правилам именации, добавление фреймворка или части, можно сделать проще.
-
-На самом деле все идеально не будет, так как создание/удаление фреймворка/части, это не только создание/удаление зависимостей на него, но и также иногда изменение логики. Библиотека не может отвечать за логику, но она может упростить взаимодействие с зависимостями.
-
-## Предыстория
-Swift в отличие от Obj-C, не поддерживает Runtime, но кое какие возможности из Obj-C работают и на Swift классах.
-
-По причинам ограничения Swift в этой части, не получиться использовать на прямую фреймворки и части чтобы их отыскать, но и добавление этой возможности не несет сложностей: достаточно фреймворк или часть унаследовать от класса `DIScanned`.
-P.S. На самом деле я не уверен, что данный нюанс это плохо – в таком случае идет явное указание, что фреймворк или часть могут быть найдены, и не получится случайно включить что-нибудь лишнее.
-
-## Поиск Фреймворков
-Чтобы организовать поиск фреймворков, как было описано выше, нужно от наследоваться от `DIScanned`:
-```swift
-class YourFramework: DIScanned, DIFramework {
-...
-}
-```
-
-После все фреймворки, которые объявлены как `DIScanned` и удовлетворяю некоторому правилу, можно найти с помощью специального класса `DIScanFramework`:
-```swift
-private class YourFrameworkScanner: DIScanFramework {
-override class var predicate: Predicate? { return .name({ $0.contains("Framework") }) }
-}
-container.append(framework: YourFrameworkScanner.self)
-```
-Предыдущий синтаксис в этой части был красивее, но так как фреймворки и части перешли на статический метод, то и тут пришлось писать через статику. В примере выше, был объявлен специальный класс, у которого определен предикат. Предикаты могут иметь следующие значения:
-* nil (по умолчанию) - будут найдены все фреймворки в программе, то есть классы от наследованные от `DIScanned` и реализующие протокол `DIFramework`
-* По имени - из всех фреймворков в программе будут отобраны те, чье имя удовлетворяет критерию.
-* По типу - из всех фреймворков в программе будут отобраны те, чей тип удовлетворяет критерию.
-
-Сканирование по типу, является более сложным, но позволяет избавиться от проблем случайных опечаток. Например, за место того, чтобы называть все фреймворки одинаково, можно их от наследовать от единого своего класса:
-```swift
-class YourFramework: YourBaseFramework { ... }
-
-private class YourFrameworkScanner: DIScanFramework {
-override class var predicate: Predicate? { return .type({ $0 is YourBaseFramework.Type }) }
-}
-```
-
-## Поиск частей
-Поиск частей идентичен поиску фреймворков, поэтому ниже будут приведен эквивалентный кусок кода:
-```swift
-class YourPart: DIScanned, DIPart { ... }
-
-private class YourPartScanner: DIScanPart {
-override class var predicate: Predicate? { return .name({ $0.contains("Part") }) }
-}
-container.append(part: YourPartScanner.self)
-```
-
-Но в отличие от фреймворков у частей можно задать не только предикат по имени/типу но и задать bundle за пределы которого поиск не выйдет:
-```swift
-private class YourPartScanner: DIScanPart {
-override class var bundle: Bundle? { return Bundle(for: YourPartScanner.self) }
-}
-container.append(part: YourPartScanner.self)
-```
-В данном примере был упущен предикат - то есть он nil, но был написан бандл. Данный код означает, что будут найдены все части от наследованные от протокола `DIScanned` которые находятся внутри бандла.
-
-
-#### [Главная](main.md)
-#### [Предыдущая глава "Отложенное внедрение"](delayed_injection.md#Отложенное_внедрение)
-#### [Следующая глава "Логирование"](log.md#Логирование)
-
diff --git a/README.md b/README.md
index 07845e43..ff9fa4a7 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ The small library for [dependency injection](https://en.wikipedia.org/wiki/Depen
* Property, Method injections [ru](Documentation/ru/injection.md#Внедрение)
* Named, Tags definitions and Many [ru](Documentation/ru/modificators.md#Модификаторы)
* Type forwarding [ru](Documentation/ru/registration.md#Указание-сервисов)
-* Lifetimes: single, perRun(weak/strong), perContainer(weak/strong), objectGraph, prototype [ru](Documentation/ru/lifetime.md#Время-жизни)
+* Lifetimes: single, perRun(weak/strong), perContainer(weak/strong), objectGraph, prototype, custom [ru](Documentation/ru/lifetime.md#Время-жизни)
* iOS/macOS Storyboard and StoryboardReference [ru](Documentation/ru/storyboard.md#storyboard)
* Circular dependencies [ru](Documentation/ru/injection.md#Внедрение-циклических-зависимостей-через-свойства)
* Three level hierarchy: types, part, framework [ru](Documentation/ru/part_framework.md#Части-и-Фреймворки)
@@ -27,7 +27,6 @@ The small library for [dependency injection](https://en.wikipedia.org/wiki/Depen
* Very detail logs [ru](Documentation/ru/log.md#Логирование)
* Validation at the run app [ru](Documentation/ru/validation.md#Валидация-контейнера)
* Injection into Subviews and cells [ru](Documentation/ru/storyboard.md#Внедрение-в-subview-и-ячейки)
-* Scan Parts/Frameworks [ru](Documentation/ru/scan.md#Поиск)
* Support Delayed injection [ru](Documentation/ru/delayed_injection.md#Отложенное-внедрение)
* Injection with arguments at any depth
* Container Hierarchy
diff --git a/Sources/Core/Public/DILifetime.swift b/Sources/Core/Public/DILifetime.swift
index 9bcee285..dcc0ce5d 100644
--- a/Sources/Core/Public/DILifetime.swift
+++ b/Sources/Core/Public/DILifetime.swift
@@ -25,7 +25,7 @@ public enum DILifeTime: Equatable {
case objectGraph
/// The object is created every time
case prototype
- /// Use user scope
+ /// Use user scope. For more information see `DIScope`
case custom(DIScope)
/// Default life time. Is taken from the settings. see: `DISetting.Defaults.lifeTime`
diff --git a/Sources/Core/Public/DIScope.swift b/Sources/Core/Public/DIScope.swift
index b2f6a404..da017e86 100644
--- a/Sources/Core/Public/DIScope.swift
+++ b/Sources/Core/Public/DIScope.swift
@@ -8,6 +8,7 @@
/// Scopes need for control lifetime of your objects
public class DIScope {
+ /// Scope name. Used in logging
public let name: String
internal let policy: DILifeTime.ReferenceCounting
@@ -18,6 +19,7 @@ public class DIScope {
/// - Parameters:
/// - name: Scope name. need for logging
/// - storage: data storing policy
+ /// - policy: weak or strong. For weak policy DI wrapped objects use Weak class and save wrapped objects into storage.
/// - parent: Checks the parent scope before making an object
public init(name: String, storage: DIStorage, policy: DILifeTime.ReferenceCounting = .strong, parent: DIScope? = nil) {
self.name = name
@@ -35,3 +37,9 @@ public class DIScope {
self.storage.clean()
}
}
+
+extension DIScope: CustomStringConvertible {
+ public var description: String {
+ return ""
+ }
+}
diff --git a/Sources/Core/Public/DITypes.swift b/Sources/Core/Public/DITypes.swift
index e7f134ff..b3dabbb4 100644
--- a/Sources/Core/Public/DITypes.swift
+++ b/Sources/Core/Public/DITypes.swift
@@ -35,7 +35,7 @@ public struct DIComponentInfo: Hashable, CustomStringConvertible {
public var description: String {
- return "Component with type: \(type) in file: \((file as NSString).lastPathComponent) on line: \(line)"
+ return ""
}
}
diff --git a/Sources/Info.plist b/Sources/Info.plist
index cb3e1f5f..03812edd 100644
--- a/Sources/Info.plist
+++ b/Sources/Info.plist
@@ -15,7 +15,7 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 3.5.2
+ 3.6.0
CFBundleSignature
????
CFBundleVersion
diff --git a/jazzy.sh b/jazzy.sh
index f1cab2c7..4f1ae355 100644
--- a/jazzy.sh
+++ b/jazzy.sh
@@ -4,7 +4,7 @@ jazzy \
--author_url /~https://github.com/ivlevAstef \
--github_url /~https://github.com/ivlevAstef/DITranquillity \
--github-file-prefix /~https://github.com/ivlevAstef/DITranquillity/tree/master \
---module-version 3.5.2 \
+--module-version 3.6.0 \
--xcodebuild-arguments -scheme,DITranquillity-iOS \
--module DITranquillity \
--root-url /~https://github.com/ivlevAstef/DITranquillity/code/ \