rocking_chair 0.0.5 → 0.0.6

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.
@@ -192,24 +192,27 @@ module RockingChair
192
192
  def sort_by_attribute(attribute)
193
193
  attribute ||= '_id'
194
194
  @keys = (options['descending'].to_s == 'true') ?
195
- keys.sort{|x,y| RockingChair::Helper.access(attribute, ruby_store[y]) <=> RockingChair::Helper.access(attribute, ruby_store[x]) } :
196
- keys.sort{|x,y| RockingChair::Helper.access(attribute, ruby_store[x]) <=> RockingChair::Helper.access(attribute, ruby_store[y]) }
195
+ keys.sort{|x,y|
196
+ if RockingChair::Helper.access(attribute, ruby_store[y]).nil?
197
+ -1
198
+ else
199
+ RockingChair::Helper.access(attribute, ruby_store[y]) <=> RockingChair::Helper.access(attribute, ruby_store[x])
200
+ end } :
201
+ keys.sort{|x,y|
202
+ if RockingChair::Helper.access(attribute, ruby_store[x]).nil?
203
+ -1
204
+ else
205
+ RockingChair::Helper.access(attribute, ruby_store[x]) <=> RockingChair::Helper.access(attribute, ruby_store[y])
206
+ end }
197
207
  end
198
208
 
199
209
  def filter_items_without_attribute_value(attribute, attr_value)
200
- if attr_value
201
- @keys = keys.select do |key|
202
- document = ruby_store[key]
203
- if RockingChair::Helper.access(attribute, document).is_a?(Array)
204
- RockingChair::Helper.access(attribute, document).include?(attr_value)
205
- else
206
- RockingChair::Helper.access(attribute, document) == attr_value
207
- end
208
- end
209
- else
210
- @keys = keys.select do |key|
211
- document = ruby_store[key]
212
- RockingChair::Helper.access(attribute, document).present?
210
+ @keys = keys.select do |key|
211
+ document = ruby_store[key]
212
+ if RockingChair::Helper.access(attribute, document).is_a?(Array)
213
+ RockingChair::Helper.access(attribute, document).include?(attr_value)
214
+ else
215
+ RockingChair::Helper.access(attribute, document) == attr_value
213
216
  end
214
217
  end
215
218
  end
@@ -172,6 +172,27 @@ class SimplyStoredTest < Test::Unit::TestCase
172
172
  assert_equal 3, User.count
173
173
  end
174
174
 
175
+ should "count_by" do
176
+ User.create(:firstname => 'michael')
177
+
178
+ assert_equal 1, User.count
179
+ assert_equal 1, User.count_by_firstname('michael')
180
+ end
181
+
182
+ should "count_by with nil attributes" do
183
+ Project.create(:title => nil)
184
+
185
+ assert_equal 1, Project.count
186
+ assert_equal 1, Project.count_by_title(nil)
187
+
188
+ Project.create(:title => nil, :manager_id => 12)
189
+
190
+ assert_equal 2, Project.count
191
+ assert_equal 2, Project.count_by_title(nil)
192
+ assert_equal 1, Project.count_by_manager_id(12)
193
+ assert_equal 1, Project.count_by_manager_id_and_title(12, nil)
194
+ end
195
+
175
196
  context "with deleted" do
176
197
  setup do
177
198
  RockingChair::Server.reset
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocking_chair
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 6
9
+ version: 0.0.6
5
10
  platform: ruby
6
11
  authors:
7
12
  - Jonathan Weiss
@@ -9,19 +14,23 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-03-04 00:00:00 +01:00
17
+ date: 2010-04-21 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: simply_stored
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 1
30
+ - 12
23
31
  version: 0.1.12
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  description: In-memory CouchDB for Couchrest and SimplyStored. Works for database and document API, by_attribute views, and for SimplyStored generated views
26
35
  email: jw@innerewut.de
27
36
  executables: []
@@ -54,18 +63,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
54
63
  requirements:
55
64
  - - ">="
56
65
  - !ruby/object:Gem::Version
66
+ segments:
67
+ - 0
57
68
  version: "0"
58
- version:
59
69
  required_rubygems_version: !ruby/object:Gem::Requirement
60
70
  requirements:
61
71
  - - ">="
62
72
  - !ruby/object:Gem::Version
73
+ segments:
74
+ - 0
63
75
  version: "0"
64
- version:
65
76
  requirements: []
66
77
 
67
78
  rubyforge_project:
68
- rubygems_version: 1.3.5
79
+ rubygems_version: 1.3.6
69
80
  signing_key:
70
81
  specification_version: 3
71
82
  summary: In-memory CouchDB for Couchrest and SimplyStored