nano-store 0.3.6 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -115,6 +115,9 @@ user.save
115
115
  ````ruby
116
116
  user = User.find(:name, NSFEqualTo, "Bob").first
117
117
  user.delete
118
+
119
+ # Bulk delete
120
+ User.delete(:age => {NSFGreaterThan => 20})
118
121
  ````
119
122
 
120
123
  ## Using Transaction
@@ -14,7 +14,7 @@ module NanoStore
14
14
  self.store.objectsOfClassNamed(self.to_s, usingSortDescriptors:sort_descriptors)
15
15
  end
16
16
  end
17
-
17
+
18
18
  # find model by criteria
19
19
  #
20
20
  # Return array of models
@@ -79,6 +79,11 @@ module NanoStore
79
79
  def count
80
80
  self.store.count(self)
81
81
  end
82
+
83
+ def delete(*args)
84
+ keys = find_keys(*args)
85
+ self.store.delete_keys(keys)
86
+ end
82
87
 
83
88
  def inherited(subclass)
84
89
  subclass.instance_variable_set(:@attributes, [])
@@ -63,6 +63,15 @@ class NSFNanoStore
63
63
  result
64
64
  end
65
65
 
66
+ # Delete objects by keys
67
+ def delete_keys(keys)
68
+ error_ptr = Pointer.new(:id)
69
+ success = self.store.removeObjectsWithKeysInArray(keys, error: error_ptr)
70
+ raise NanoStoreError, error_ptr[0].description if error_ptr[0]
71
+ result
72
+ end
73
+
74
+
66
75
  # delete all objects from store
67
76
  def clear
68
77
  error_ptr = Pointer.new(:id)
@@ -1,3 +1,3 @@
1
1
  module NanoStore
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.7"
3
3
  end
data/spec/model_spec.rb CHANGED
@@ -82,4 +82,21 @@ describe NanoStore::Model do
82
82
  User.count.should == 0
83
83
  end
84
84
 
85
+
86
+ it "bulk delete" do
87
+ user = stub_user("Bob", 10, Time.now)
88
+ user.save
89
+
90
+ user = stub_user("Ken", 12, Time.now)
91
+ user.save
92
+
93
+ user = stub_user("Kyu", 14, Time.now)
94
+ user.save
95
+
96
+ User.count.should == 3
97
+ User.delete({:age => {NSFGreaterThan => 10}})
98
+ User.count.should == 1
99
+ end
100
+
101
+
85
102
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nano-store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-05-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bubble-wrap
16
- requirement: &70301664740020 !ruby/object:Gem::Requirement
16
+ requirement: &70168445256200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.1.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70301664740020
24
+ version_requirements: *70168445256200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: motion-cocoapods
27
- requirement: &70301664739380 !ruby/object:Gem::Requirement
27
+ requirement: &70168445255560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.2
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70301664739380
35
+ version_requirements: *70168445255560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: motion-redgreen
38
- requirement: &70301664738860 !ruby/object:Gem::Requirement
38
+ requirement: &70168445255020 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70301664738860
46
+ version_requirements: *70168445255020
47
47
  description: Wrapper for NanoStore, a lightweight schema-less key-value document database
48
48
  based on sqlite, for RubyMotion.
49
49
  email: