Class: NanoStore::Bag

Inherits:
NSFNanoBag
  • Object
show all
Defined in:
lib/nano_store/bag.rb

Instance Method Summary collapse

Instance Method Details

#+(object_or_array) ⇒ Object

Add an object or array of objects to bag Return the bag

Raises:



28
29
30
31
32
33
34
35
36
37
# File 'lib/nano_store/bag.rb', line 28

def +(object_or_array)
  error_ptr = Pointer.new(:id)
  if object_or_array.is_a?(Array)
    self.addObjectsFromArray(object_or_array, error:error_ptr)
  else
    self.addObject(object_or_array, error:error_ptr)
  end
  raise NanoStoreError, error_ptr[0].description if error_ptr[0]
  self
end

#-(object_or_array) ⇒ Object

Add an object or array of objects to bag Return the bag

Raises:



59
60
61
62
63
64
65
66
67
68
# File 'lib/nano_store/bag.rb', line 59

def -(object_or_array)
  error_ptr = Pointer.new(:id)
  if object_or_array.is_a?(Array)
    self.removeObjectsInArray(object_or_array, error:error_ptr)
  else
    self.removeObject(object, error_ptr)
  end
  raise NanoStoreError, error_ptr[0].description if error_ptr[0]
  self
end

#<<(object) ⇒ Object

Add an object to bag

Returns:

  • self

Raises:



16
17
18
19
20
21
# File 'lib/nano_store/bag.rb', line 16

def <<(object)
  error_ptr = Pointer.new(:id)
  self.addObject(object, error:error_ptr)
  raise NanoStoreError, error_ptr[0].description if error_ptr[0]
  self
end

#changed?Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/nano_store/bag.rb', line 8

def changed?
  self.hasUnsavedChanges
end

#delete(object) ⇒ Object

Remove object from bag



40
41
42
43
# File 'lib/nano_store/bag.rb', line 40

def delete(object)
  self.removeObject(object)
  self
end

#delete_key(key) ⇒ Object

Remove object from bag with key params: key - a key or array of keys



48
49
50
51
52
53
54
55
# File 'lib/nano_store/bag.rb', line 48

def delete_key(key)
  if key.is_a?(Array)
    self.removeObjectsWithKeysInArray(key)
  else
    self.removeObjectWithKey(key)
  end
  self
end

#reloadObject

Raises:



79
80
81
82
83
84
# File 'lib/nano_store/bag.rb', line 79

def reload
  error_ptr = Pointer.new(:id)
  result = self.reloadBagWithError(error_ptr)
  raise NanoStoreError, error_ptr[0].description if error_ptr[0]
  result
end

#saveObject

Saving, Reloading and Undoing

Raises:



72
73
74
75
76
77
# File 'lib/nano_store/bag.rb', line 72

def save
  error_ptr = Pointer.new(:id)
  result = self.saveAndReturnError(error_ptr)
  raise NanoStoreError, error_ptr[0].description if error_ptr[0]
  result
end

#undoObject

Raises:



86
87
88
89
90
91
# File 'lib/nano_store/bag.rb', line 86

def undo
  error_ptr = Pointer.new(:id)
  result = self.undoChangesWithError(error_ptr)
  raise NanoStoreError, error_ptr[0].description if error_ptr[0]
  result
end