Bump danger from 9.3.0 to 9.3.1 (#79)
Bumps danger from 9.3.0 to 9.3.1.
Release notes
Sourced from danger's releases.
9.3.1
- Update Octokit dependency to version 6.0 -
@spencertransierdanger/danger#1437- Fixes dependency constraint issue on ruby-git -
@ainamedanger/danger#1436Changelog
Sourced from danger's changelog.
9.3.1
- Update Octokit dependency to version 6.0 -
@spencertransier#1437- Fixes dependency constraint issue on
ruby-git-@ainame#1436Commits
9eccfbdRelease85a2a6fMerge pull request #1436 from ainame/ruby-git12ea0a1Revise commenta7dd13fExplicitly set expectation on a speca42584dFix broken test case11df4baUpdate changelog6b979b6Update danger.gemspeca4bf8beMerge pull request #1438 from spencertransier/spencertransier/add-changelog-e...414adc4Add CHANGELOG.md entry for PR #14376317256Merge pull request #1437 from spencertransier/spencertransier/update-octokit-...- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don’t alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Signed-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Foil
A lightweight property wrapper for UserDefaults done right
About
Read the post: A better approach to writing a UserDefaults Property Wrapper
Why the name?
Foil, as in “let me quickly and easily wrap and store this leftover food in some foil so I can eat it later.” 🌯 😉
Usage
You can use
@WrappedDefaultfor non-optional values and@WrappedDefaultOptionalfor optional ones. You may wish to store all your user defaults in one place, however, that is not necessary. Any property on any type can use this wrapper.There is also an included example app project.
Using
enumkeysIf you prefer using an
enumfor the keys, writing an extension specific to your app is easy. However, this is not required. In fact, unless you have a specific reason to reference the keys, this is completely unnecessary.Observing changes
There are many ways to observe property changes. The most common are by using Key-Value Observing or a Combine Publisher. KVO observing requires the object with the property to inherit from
NSObjectand the property must be declared as@objc dynamic.Using KVO
Using Combine
Note: that
averagedoes not need the@objc dynamicannotation,.receiveValuewill fire immediately with the current value ofaverageand on every change after.Combine Alternative with KVO
Note: in this case,
userIdneeds the@objc dynamicannotation andAppSettingsneeds to inherit fromNSObject. ThenreceiveValuewill fire only on changes to wrapped object’s value. It will not publish the initial value as in the example above.Supported types
The following types are supported by default for use with
@WrappedDefault.Adding support for custom types is possible by conforming to
UserDefaultsSerializable. However, this is highly discouraged.UserDefaultsis not intended for storing complex data structures and object graphs. You should probably be using a proper database (or serializing to disk viaCodable) instead.BoolIntUIntFloatDoubleStringURLDateDataArraySetDictionaryRawRepresentabletypesAdditional Resources
Supported Platforms
Requirements
Installation
CocoaPods
Swift Package Manager
Alternatively, you can add the package directly via Xcode.
Documentation
You can read the documentation here. Generated with jazzy. Hosted by GitHub Pages.
Contributing
Interested in making contributions to this project? Please review the guides below.
Also consider sponsoring this project or buying my apps! ✌️
Credits
Created and maintained by Jesse Squires.
License
Released under the MIT License. See
LICENSEfor details.