Written by Gavin Morrice on Jun 11th, 2014
While working on a current iOS app I was using the very useful BubbleWrap gem for persisting values within a few classes. While BubbleWrap is great, but I found that having to call
App::Persistence throughout my app wasn’t ideal.
For one, using strings as the persistence keys is not DRY - you change the key in one place, you have to change it all over.
motion-persistable is a simple gem that provides a wrapper around BubbleWrap’s persistence (which uses NSUserDefaults under the hood) to add attribute accessor macros for persistable attributes.
Using it is as simple as:
For class methods:
class User class << self include Motion::Persistable attr_persisted :use_count, 0 attr_persisted :email, "[default]" do |value| # This block is executed when a new value is set mixpanel.people.set(email: value) end end end User.email = "bodacious" User.email # => "bodacious"
The gem is available on Github