data_table 0.3.0 → 0.3.1

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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- data_table (0.2.7)
4
+ data_table (0.3.0)
5
5
  rails (~> 3.0.0)
6
6
 
7
7
  GEM
@@ -16,7 +16,13 @@ module DataTable
16
16
  return if (query = raw_query.gsub(/\//, "")).blank?
17
17
 
18
18
  if search_fields.size == 1
19
- {search_fields.first => /#{query}/i}
19
+ terms = query.strip.split(/\s/)
20
+
21
+ if terms.size == 1
22
+ {search_fields.first => /#{query}/i}
23
+ else
24
+ {search_fields.first => {"$all" => terms.map {|term| /#{term}/i }}}
25
+ end
20
26
  else
21
27
  {"$or" => search_fields.map {|field| {field => /#{query}/i} }}
22
28
  end
@@ -1,3 +1,3 @@
1
1
  module DataTable
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -37,6 +37,12 @@ describe DataTable do
37
37
  send(:_where_conditions, "q", %w(f)).should == {"f" => /q/i}
38
38
  end
39
39
 
40
+ context "given multiple search terms" do
41
+ it "should require a match for each term when there is a single search field" do
42
+ send(:_where_conditions, "q1 q2", %w(f)).should == {"f" => {"$all" => [/q1/i, /q2/i]}}
43
+ end
44
+ end
45
+
40
46
  end
41
47
 
42
48
  context "#_order_by_fields" do
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: data_table
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.0
5
+ version: 0.3.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jason Dew