Class: NSFNanoStore

Inherits:
Object
  • Object
show all
Defined in:
motion-prime/models/store_extension.rb

Instance Method Summary collapse

Instance Method Details

#<<(objects) ⇒ Object Also known as: +

Adding and Removing Objects



36
37
38
39
40
41
42
43
44
45
# File 'motion-prime/models/store_extension.rb', line 36

def <<(objects)
  error_ptr = Pointer.new(:id)
  if objects.is_a?(Array)
    self.addObjectsFromArray(objects, error:error_ptr)
  else
    self.addObject(objects, error:error_ptr)
  end
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  self
end

#changed?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'motion-prime/models/store_extension.rb', line 6

def changed?
  self.hasUnsavedChanges
end

#clearObject

delete all objects from store



62
63
64
65
66
67
# File 'motion-prime/models/store_extension.rb', line 62

def clear
  error_ptr = Pointer.new(:id)
  result = self.removeAllObjectsFromStoreAndReturnError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  result
end

#clear_indexObject

Remove all indexes from the document store.



100
101
102
103
104
105
# File 'motion-prime/models/store_extension.rb', line 100

def clear_index
  error_ptr = Pointer.new(:id)
  result = self.clearIndexesAndReturnError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  result
end

#closeObject

Open and Close store



16
17
18
19
20
21
# File 'motion-prime/models/store_extension.rb', line 16

def close
  error_ptr = Pointer.new(:id)
  closed = self.closeWithError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  closed
end

#closed?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'motion-prime/models/store_extension.rb', line 30

def closed?
  self.isClosed
end

#compactObject

Compact the database file size.



92
93
94
95
96
97
# File 'motion-prime/models/store_extension.rb', line 92

def compact
  error_ptr = Pointer.new(:id)
  result = self.compactStoreAndReturnError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  result
end

#count(clazz) ⇒ Object

Count number of this class objects in store



124
125
126
# File 'motion-prime/models/store_extension.rb', line 124

def count(clazz)
  self.countOfObjectsOfClassNamed(clazz.bare_class_name)
end

#delete(objects) ⇒ Object

delete a object or array of objects from the array



49
50
51
52
53
54
55
56
57
58
# File 'motion-prime/models/store_extension.rb', line 49

def delete(objects)
  error_ptr = Pointer.new(:id)
  if objects.is_a?(Array)
    result = self.removeObjectsInArray(objects, error:error_ptr)
  else
    result = self.removeObject(objects, error:error_ptr)
  end
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  result
end

#delete_keys(keys) ⇒ Object

delete object with keys param: keys - array of key



71
72
73
74
75
76
# File 'motion-prime/models/store_extension.rb', line 71

def delete_keys(keys)
  error_ptr = Pointer.new(:id)
  result = self.removeObjectsWithKeysInArray(keys, error:error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  result
end

#engineObject



2
3
4
# File 'motion-prime/models/store_extension.rb', line 2

def engine
  self.nanoStoreEngine
end

#openObject



23
24
25
26
27
28
# File 'motion-prime/models/store_extension.rb', line 23

def open
  error_ptr = Pointer.new(:id)
  opened = self.openWithError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  opened
end

#rebuild_indexObject

Recreate all indexes from the document store.



108
109
110
111
112
113
# File 'motion-prime/models/store_extension.rb', line 108

def rebuild_index
  error_ptr = Pointer.new(:id)
  result = self.rebuildIndexesAndReturnError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  result
end

#saveObject

Saves the uncommitted changes to the document store.



81
82
83
84
85
86
# File 'motion-prime/models/store_extension.rb', line 81

def save
  error_ptr = Pointer.new(:id)
  result = saveStoreAndReturnError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  result
end

#save_interval=(interval) ⇒ Object



10
11
12
# File 'motion-prime/models/store_extension.rb', line 10

def save_interval=(interval)
  self.setSaveInterval(interval)
end

#save_store(path, compact = true) ⇒ Object

Makes a copy of the document store to a different location and optionally compacts it to its minimum size.



116
117
118
119
120
121
# File 'motion-prime/models/store_extension.rb', line 116

def save_store(path, compact=true)
  error_ptr = Pointer.new(:id)
  result = self.saveStoreToDirectoryAtPath(path, compactDatabase:compact, error:error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  result
end

#transactionObject

Create a transaction



129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'motion-prime/models/store_extension.rb', line 129

def transaction
  error_ptr = Pointer.new(:id)
  beginTransactionAndReturnError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]

  begin
    yield self
  rescue StandardError => e
    rollbackTransactionAndReturnError(error_ptr)
    raise e
  end
  success = commitTransactionAndReturnError(error_ptr)
  raise MotionPrime::StoreError, error_ptr[0].description if error_ptr[0]
  success
end