nano-store 0.3.3 → 0.3.4

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
@@ -96,7 +96,7 @@ users = User.find(:name => { NSFEqualTo => "Ronald" })
96
96
  users = User.find(:name => { NSFEqualTo => "Ronald" }, :age => { NSFGreaterThan => 50 })
97
97
 
98
98
  # Optionally sort the result with additional hash parameters
99
- users = User.find({:age => { NSFGreaterThan => 10 }}, {:sort => {:age => 'DESC'}})
99
+ users = User.find({:age => { NSFGreaterThan => 10 }}, {:sort => {:age => :desc}})
100
100
  ````
101
101
 
102
102
  ### Update
@@ -1,5 +1,9 @@
1
1
  module NanoStore
2
- module FinderMethods
2
+ module FinderMethods
3
+ def all(*args)
4
+ find({}, *args)
5
+ end
6
+
3
7
  # find model by criteria
4
8
  #
5
9
  # Return array of models
@@ -30,10 +34,15 @@ module NanoStore
30
34
  raise "unexpected parameters #{arg}"
31
35
  end
32
36
  search = NSFNanoSearch.searchWithStore(self.store)
33
- expressions = expressions_with_options(options)
37
+
38
+ unless options.empty?
39
+ expressions = expressions_with_options(options)
40
+ search.expressions = expressions
41
+ end
42
+
34
43
  sort_descriptors = sort_descriptor_with_options(sort_options)
35
- search.expressions = expressions
36
44
  search.sort = sort_descriptors
45
+
37
46
  error_ptr = Pointer.new(:id)
38
47
  searchResults = search.searchObjectsWithReturnType(NSFReturnObjects, error:error_ptr)
39
48
  raise NanoStoreError, error_ptr[0].description if error_ptr[0]
@@ -69,11 +78,17 @@ module NanoStore
69
78
  else
70
79
  raise "unexpected parameters #{arg}"
71
80
  end
81
+
72
82
  search = NSFNanoSearch.searchWithStore(self.store)
73
- expressions = expressions_with_options(options)
83
+
84
+ unless options.empty?
85
+ expressions = expressions_with_options(options)
86
+ search.expressions = expressions
87
+ end
88
+
74
89
  sort_descriptors = sort_descriptor_with_options(sort_options)
75
- search.expressions = expressions
76
90
  search.sort = sort_descriptors
91
+
77
92
  error_ptr = Pointer.new(:id)
78
93
  searchResults = search.searchObjectsWithReturnType(NSFReturnKeys, error:error_ptr)
79
94
  raise NanoStoreError, error_ptr[0].description if error_ptr[0]
@@ -105,14 +120,16 @@ module NanoStore
105
120
  'ASC' => true,
106
121
  'DESC' => false,
107
122
  :ASC => true,
108
- :DESC => false
123
+ :DESC => false,
124
+ 'asc' => true,
125
+ 'desc' => false,
126
+ :asc => true,
127
+ :desc => false,
109
128
  }
110
129
 
111
130
  def sort_descriptor_with_options(options)
112
131
  sorter = options.collect do |opt_key, opt_val|
113
- if opt_val.is_a?(TrueClass) || opt_val.is_a?(FalseClass)
114
- NSFNanoSortDescriptor.alloc.initWithAttribute(opt_key.to_s, ascending:opt_val)
115
- elsif SORT_MAPPING.keys.include?(opt_val)
132
+ if SORT_MAPPING.keys.include?(opt_val)
116
133
  NSFNanoSortDescriptor.alloc.initWithAttribute(opt_key.to_s, ascending:SORT_MAPPING[opt_val])
117
134
  else
118
135
  raise "unsupported sort parameters: #{opt_val}"
@@ -79,14 +79,6 @@ module NanoStore
79
79
  def count
80
80
  self.store.count(self)
81
81
  end
82
-
83
- def all
84
- search = NSFNanoSearch.searchWithStore(self.store)
85
- error_ptr = Pointer.new(:id)
86
- searchResults = search.searchObjectsWithReturnType(NSFReturnObjects, error:error_ptr)
87
- raise NanoStoreError, error_ptr[0].description if error_ptr[0]
88
- searchResults.values
89
- end
90
82
 
91
83
  def inherited(subclass)
92
84
  subclass.instance_variable_set(:@attributes, [])
@@ -1,3 +1,3 @@
1
1
  module NanoStore
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
data/spec/finder_spec.rb CHANGED
@@ -27,6 +27,7 @@ describe "Finder" do
27
27
  it "search object traditional way: supply key, operator and value" do
28
28
  users = User.find(:name, NSFEqualTo, "Bob")
29
29
  users.should.not.be.nil
30
+
30
31
  user = users.first
31
32
  user.should.not.be.nil
32
33
  user.name.should.be == "Bob"
@@ -67,7 +68,7 @@ describe "Finder" do
67
68
  stub_user("Zidd", 59, Time.now).save
68
69
  stub_user("Sarah", 49, Time.now).save
69
70
 
70
- users = User.find({:age => { NSFGreaterThan => 1 }}, {:sort => {:age => true}})
71
+ users = User.find({:age => { NSFGreaterThan => 1 }}, {:sort => {:age => :asc}})
71
72
  users.size.should == 9
72
73
  user = users.first
73
74
  user.name.should.be == "Carl"
@@ -85,11 +86,31 @@ describe "Finder" do
85
86
  user.name.should.be == "Zidd"
86
87
  user.age.should.be == 59
87
88
  end
88
-
89
89
 
90
90
  it "find object" do
91
91
  user = User.find(:name, NSFEqualTo, "Bob").first
92
92
  user.name.should == "Bob"
93
93
  end
94
94
 
95
+ it "find all objects" do
96
+ User.count.should == 3
97
+ users = User.all
98
+ users.size.should == 3
99
+ end
100
+
101
+ it "find all objects, sorted" do
102
+ stub_user("Alan", 39, Time.now).save
103
+ stub_user("Cat", 29, Time.now).save
104
+ stub_user("Dan", 36, Time.now).save
105
+ stub_user("Ted", 18, Time.now).save
106
+ stub_user("Zidd", 59, Time.now).save
107
+ stub_user("Sarah", 49, Time.now).save
108
+
109
+ User.count.should == 9
110
+ users = User.all({:sort => {:age => :asc}})
111
+ users.size.should == 9
112
+ users.first.name.should == "Carl"
113
+ end
114
+
115
+
95
116
  end
data/spec/model_spec.rb CHANGED
@@ -82,19 +82,4 @@ describe NanoStore::Model do
82
82
  User.count.should == 0
83
83
  end
84
84
 
85
- it "find all objects" do
86
- user = stub_user("Bob", 10, Time.now)
87
- user.save
88
-
89
- user2 = stub_user("Amy", 11, Time.now)
90
- user2.save
91
-
92
-
93
- User.count.should == 2
94
- users = User.all
95
- users.size.should == 2
96
- users.collect(&:key).include?(user.key)
97
- users.collect(&:key).include?(user2.key)
98
- end
99
-
100
85
  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.3
4
+ version: 0.3.4
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: &70184077832220 !ruby/object:Gem::Requirement
16
+ requirement: &70220199532500 !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: *70184077832220
24
+ version_requirements: *70220199532500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: motion-cocoapods
27
- requirement: &70184077829960 !ruby/object:Gem::Requirement
27
+ requirement: &70220199530260 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70184077829960
35
+ version_requirements: *70220199530260
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: motion-redgreen
38
- requirement: &70184077828360 !ruby/object:Gem::Requirement
38
+ requirement: &70220199528680 !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: *70184077828360
46
+ version_requirements: *70220199528680
47
47
  description: Wrapper for NanoStore, a lightweight schema-less key-value document database
48
48
  based on sqlite, for RubyMotion.
49
49
  email: