nano-store 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
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: