Sha256: 451154e959389f8de27e1e7aabc7ebf50557991452f0813350ddeb2513d60ef9
Contents?: true
Size: 1.05 KB
Versions: 6
Compression:
Stored size: 1.05 KB
Contents
# Persistence module built on top of NSUserDefaults module BubbleWrap module Persistence module_function def app_key @app_key ||= BubbleWrap::App.identifier end def []=(key, value) storage.setObject(value, forKey: storage_key(key)) storage.synchronize end def [](key) value = storage.objectForKey storage_key(key) # RubyMotion currently has a bug where the strings returned from # standardUserDefaults are missing some methods (e.g. to_data). # And because the returned object is slightly different than a normal # String, we can't just use `value.is_a?(String)` value.class.to_s == 'String' ? value.dup : value end def merge(values) values.each do |key, value| storage.setObject(value, forKey: storage_key(key)) end storage.synchronize end def storage NSUserDefaults.standardUserDefaults end def storage_key(key) app_key + '_' + key.to_s end end end ::Persistence = BubbleWrap::Persistence unless defined?(::Persistence)
Version data entries
6 entries across 6 versions & 1 rubygems