Class: MotionPrime::Store
- Inherits:
-
Object
- Object
- MotionPrime::Store
- Defined in:
- motion-prime/models/store.rb
Class Method Summary collapse
- .connect(type = nil) ⇒ Object
- .connect!(type = nil) ⇒ Object
- .connected? ⇒ Boolean
- .create(type = nil, path = nil) ⇒ Object
- .debug=(debug) ⇒ Object
- .disconnect ⇒ Object
- .shared_store ⇒ Object
- .shared_store=(store) ⇒ Object
Class Method Details
.connect(type = nil) ⇒ Object
29 30 31 |
# File 'motion-prime/models/store.rb', line 29 def self.connect(type = nil) connect!(type) unless connected? end |
.connect!(type = nil) ⇒ Object
25 26 27 |
# File 'motion-prime/models/store.rb', line 25 def self.connect!(type = nil) self.shared_store = create(type) end |
.connected? ⇒ Boolean
33 34 35 |
# File 'motion-prime/models/store.rb', line 33 def self.connected? !!shared_store end |
.create(type = nil, path = nil) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'motion-prime/models/store.rb', line 4 def self.create(type = nil, path = nil) error_ptr = Pointer.new(:id) case type || MotionPrime::Config.model.store_type.to_sym when :memory store = NSFNanoStore.createAndOpenStoreWithType(NSFMemoryStoreType, path: nil, error: error_ptr) when :temporary, :temp store = NSFNanoStore.createAndOpenStoreWithType(NSFTemporaryStoreType, path: nil, error: error_ptr) when :persistent, :file path ||= begin documents_path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0] documents_path + "/nano_#{Prime.env.to_s}.db" end store = NSFNanoStore.createAndOpenStoreWithType(NSFPersistentStoreType, path: path, error: error_ptr) else raise StoreError.new("unexpected store type (#{type}), must be one of: :memory, :temporary or :persistent") end raise StoreError, error_ptr[0].description if error_ptr[0] store end |
.debug=(debug) ⇒ Object
49 50 51 |
# File 'motion-prime/models/store.rb', line 49 def self.debug=(debug) NSFSetIsDebugOn(debug) end |
.disconnect ⇒ Object
37 38 39 |
# File 'motion-prime/models/store.rb', line 37 def self.disconnect self.shared_store = nil end |
.shared_store ⇒ Object
41 42 43 |
# File 'motion-prime/models/store.rb', line 41 def self.shared_store @shared_store end |
.shared_store=(store) ⇒ Object
45 46 47 |
# File 'motion-prime/models/store.rb', line 45 def self.shared_store=(store) @shared_store = store end |