Giter Club home page Giter Club logo

storez's People

Contributors

haikusw avatar maryom avatar mazyod avatar readmecritic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

storez's Issues

UserDefaults Migration

Add user defaults migration helper, which takes a list of of MigrationInfo. MigrationInfo is a struct that contains a KeyType to be migrated to, String which is the old key, and a processing block, that takes the old value and processes it to to return a new suitable value for KeyType.

This is the actual use case that I have. I have simplified it so it makes more sense:

old value: "CityId" -> "kw-city-asimah"
new key: "general-settings:city" -> ""

so, we can do this:

let migrationInfo = MigrationInfo(
  keyType = Key<GeneralSettings, City>(id: "city", defaultValue: City.asimah),
  oldKey = "CityId",
  processor = { oldValue in
    // process from a string to a City type
    return mydb.getCity(oldValue)
})

Cannot create Custom objects

I try to create some custom objects,

struct StorezArray {
    var arrStr: [String]
}

extension StorezArray: UserDefaultsConvertible {
    typealias UserDefaultsType = String
    
    var encodeForUserDefaults: StorezArray.UserDefaultsType? {
        return arrStr.joined(separator: ";")
    }
    
    static func decode(userDefaultsValue value: StorezArray.UserDefaultsType) -> StorezArray? {
        return self.init(arrStr: value.components(separatedBy: ";"))
    }
}

but xcode always says

Type 'StorezArray' does not conform to protocol 'UserDefaultsConvertible'

even though i add the protocol stub

Get all of a kind

Hi there!
How can I get all items stored under a certain Namespace? For example, I have the following namespace:

struct ListsNamespace: Namespace {
    static let id = "lists"
}

and I want to fetch all 'List' items.

Thanks!

Cocoapods support

Probably makes sense to support Cocoapods using subspecs, so users can perhaps add support to Realm, SQLite, CoreData ... etc, without affecting light-weight stores.

Carthage Support

As simple as adding a tag with the Carthage support badge. Well, the readme should probably be updated as well.

clear() does not seem to clear user defaults

The following code passes the first time. When the test is run a second time it fails.

func testUserDefaultsBuggyClear() {

    var testStore = UserDefaultsStore(suite: "io.kitz.storez.test")
    let key = Key<GlobalNamespace, Int?>(id: "foo", defaultValue: nil)

    testStore.clear()

    XCTAssertNil(testStore.get(key))
    testStore.set(key, value: 666)
    XCTAssertEqual(testStore.get(key), 666)

    testStore.clear()
    XCTAssertNil(testStore.get(key))

    testStore = UserDefaultsStore(suite: "io.kitz.storez.test")

    XCTAssertNil(testStore.get(key))

    testStore.set(key, value: 666)
}

Run the following code several times and it eventually will always pass:

func testUserDefaultsClear() {

    var testStore = UserDefaultsStore(suite: "io.kitz.storez.test")
    let key = Key<GlobalNamespace, Int?>(id: "foo", defaultValue: nil)

    testStore.clear()

    XCTAssertNil(testStore.get(key))
    testStore.set(key, value: 666)
    XCTAssertEqual(testStore.get(key), 666)

    testStore.clear()
    XCTAssertNil(testStore.get(key))

    testStore = UserDefaultsStore(suite: "io.kitz.storez.test")

    XCTAssertNil(testStore.get(key))

    testStore.set(key, value: 666)

    testStore.clear()
}

the newest version build failed in carthage

build failed in carthage and when i build in Xcode i get the incurrent headers.
the season is like this:
The following build commands failed:
Check dependencies
(1 failure)
** BUILD FAILED **

The following build commands failed:
Check dependencies
(1 failure)
warning: no umbrella header found for target 'Storez-ios', module map will not be generated
warning: no umbrella header found for target 'Storez-ios', module map will not be generated
A shell task (/usr/bin/xcrun xcodebuild -workspace /Carthage/Checkouts/Storez/Storez.xcworkspace -scheme Storez-ios -configuration Release -sdk iphoneos ONLY_ACTIVE_ARCH=NO BITCODE_GENERATION_MODE=bitcode CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES clean build) failed with exit code 65:
--- xcodebuild: WARNING: Unable to open project file '
/Carthage/Checkouts/Storez/Playground/Playground.playground' in workspace '~/Carthage/Checkouts/Storez/Storez.xcworkspace'.
** CLEAN FAILED **

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.