Commit Graph

94 Commits

Author SHA1 Message Date
Yakov Manshin 4caf268082 [#48] Override Value Validation Fix (#49)
* Fixed a bug that resulted in the override value validation logic always requesting values as `Optional<Any>`, which led to an error if the feature flag store supported a limited set of value types
* Extended `FeatureFlagStoreProtocol` with a new requirement, `containsValue(forKey:)`
* Implemented `containsValue(forKey:)` in `FeatureFlagStore`, `UserDefaultsStore`, and `RuntimeOverridesStore`
* Updated tests to cover more restrictive scenarios, including the one with limited number of supported feature flag value types
2021-04-08 16:40:07 +03:00
Yakov Manshin 6689fef697 v1.2.0 (#47)
* [#38, #44] Added support for feature flag values in `UserDefaults` (#42, #46)
* [#37] Updated Copyright Year in `LICENSE`
* [#33, #35] Updated CI configuration (#34, #36)
2021-03-28 22:52:12 +03:00
Yakov Manshin a6bc7e2217 [#44] Updated README for UserDefaultsStore (#46)
* Described how `UserDefaults` can be used to read and write feature flag values
* Updated the code example in Usage
2021-03-28 22:46:07 +03:00
Yakov Manshin e54c510686 [#38] UserDefaults Store (#42)
* Introduced `UserDefaultsStore` which can be used as both read-only and mutable store
* Extended `FeatureFlagStore` with the new `userDefaults(_:)` case
2021-03-28 14:09:03 +03:00
Yakov Manshin 884530ecd8 [#37] Updated Copyright Year in LICENSE 2021-03-25 22:41:08 +03:00
Yakov Manshin dc759e0fdd [#35] Updated CI to Xcode 12.5 (#36) 2021-03-20 13:37:48 +03:00
Yakov Manshin 8fd25c24b5 [#33] Updated CI Config with Xcode 12.3 (#34) 2020-12-26 00:24:13 +03:00
Yakov Manshin 2500e1d5c7 v1.1.0 (#32) 2020-12-26 00:06:40 +03:00
Yakov Manshin 7f2946e932 Updated .gitignore 2020-12-25 22:58:40 +03:00
Yakov Manshin 4fab7cce17 Updated FeatureFlag Documentation
* Added missing docs
* Fixed outdated ones
2020-12-25 22:08:05 +03:00
Yakov Manshin 260bbb74fe Access Control Updates in FeatureFlag
* Switched `key` and `defaultValue` from private to public
2020-12-25 22:06:33 +03:00
Yakov Manshin 2e2fd8be60 [#25] Added Documentation for Runtime Overriding (#30) 2020-12-25 13:29:09 +03:00
Yakov Manshin ec65aa8474 [#26] Runtime Override Removal (#29)
* Added `removeRuntimeOverride()` method on `FeatureFlag`
* Updated tests
2020-12-24 23:58:22 +03:00
Yakov Manshin 978e96e7c9 [#27] FeatureFlag Projected Value (#28)
* Added `projectedValue` property on `FeatureFlag` that returns the instance of `FeatureFlag`
* Switched `FeatureFlag` from struct to class
* Added tests to check types of values returned by the `projectedValue` property
2020-12-24 23:31:20 +03:00
Yakov Manshin 0efbede9da v1.0.0 (#24) 2020-12-09 22:15:34 +03:00
Yakov Manshin 9a567c68fc Updated README 2020-11-30 22:46:12 +03:00
Yakov Manshin 38bd802a8e Updated Access Control in FeatureFlagResolver 2020-11-30 22:35:15 +03:00
Yakov Manshin 6e8ec9f06f Updated FeatureFlag Initializer 2020-11-30 22:35:01 +03:00
Yakov Manshin fc408f864a [#21] Added HTML Documentation (#23) 2020-11-28 23:48:43 +03:00
Yakov Manshin cee9598d21 [#22] Documented Firebase Remote Config Integration 2020-11-28 23:24:10 +03:00
Yakov Manshin bc18daeb86 [#1] Added README (#20) 2020-11-28 22:27:53 +03:00
Yakov Manshin eca9f0a685 Documentation Improvements 2020-11-28 15:24:07 +03:00
Yakov Manshin 89c23224e2 [#18] Updated CI Config to Xcode 12.2 / macOS Big Sur (#19) 2020-11-17 01:13:11 +03:00
Yakov Manshin 9a098221ce [#15] Generics-Based Value Resolution (#17)
* Removed `Any` from feature flag store's and resolver's methods
* Updated tests
2020-11-16 22:14:20 +03:00
Yakov Manshin 369fa048dd Updated FeatureFlagKey 2020-11-16 19:32:29 +03:00
Yakov Manshin 331fe6674f [#12] New Persistent Stores Model (#13)
* Introduced a new approach to feature flag stores: instead of one local and one remote stores, a variable number of persistent stores can be specified
* The stores are examined in the order they were provided: the first one containing feature flag value for key will be used
2020-10-15 23:48:27 +03:00
Yakov Manshin 08e518fc9d Default Runtime Store in FeatureFlagResolverConfiguration 2020-10-15 22:22:52 +03:00
Yakov Manshin a15c98906e [#7] Code Documentation (#11) 2020-10-01 21:23:42 +03:00
Yakov Manshin cb71b5d03e [#5] Runtime Overrides (#9) 2020-09-26 15:50:56 +03:00
Yakov Manshin 90335a3437 [#2] Added LICENSE 2020-09-26 14:12:58 +03:00
Yakov Manshin 7e007cd5a8 Generated Linux Tests 2020-09-26 14:10:21 +03:00
Yakov Manshin 5b2d0e3057 Feature Flag (#8) 2020-09-26 13:44:39 +03:00
Yakov Manshin 5939702c18 [#3] GitHub Actions Configuration 2020-09-25 01:29:13 +03:00
Yakov Manshin e8500f36a7 FeatureFlagKeyTests 2020-09-25 01:09:07 +03:00
Yakov Manshin 5e2542fe02 Added Opaque Feature Flag Store to Tests 2020-09-25 01:08:06 +03:00
Yakov Manshin 3db344a4c8 Feature Flag Resolver (#4) 2020-09-25 01:06:42 +03:00
Yakov Manshin 24eb8c95a6 FeatureFlagResolverConfiguration 2020-09-24 02:17:13 +03:00
Yakov Manshin 696bf436ce FeatureFlagStore 2020-09-24 02:16:55 +03:00
Yakov Manshin 13bb2092ae FeatureFlagResolverProtocol 2020-09-24 02:15:57 +03:00
Yakov Manshin ed404aeefd FeatureFlagKey 2020-09-24 02:14:29 +03:00
Yakov Manshin 892ce7370b FeatureFlagServiceConfigurationProtocol 2020-09-24 02:14:29 +03:00
Yakov Manshin d7383c3620 FeatureFlagStoreProtocol 2020-09-24 02:14:29 +03:00
Yakov Manshin 03548807b1 Created Package.swift 2020-09-21 00:04:58 +03:00
Yakov Manshin eaa82dff6d .gitignore 2020-09-21 00:04:58 +03:00