mongoid-data_table 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -40,7 +40,7 @@ module Mongoid
40
40
  end
41
41
 
42
42
  def conditions
43
- criteria.order_by(order_by_conditions).where(filter_conditions).where(filter_field_conditions)
43
+ criteria.clone.order_by(order_by_conditions).where(filter_conditions).where(filter_field_conditions)
44
44
  end
45
45
 
46
46
  def to_hash(&inline_block)
@@ -67,7 +67,7 @@ module Mongoid
67
67
  protected
68
68
 
69
69
  def order_by_conditions
70
- order_params = params.select { |k,v| k =~ /(i|s)Sort(Col|Dir)_\d+/ }
70
+ order_params = params.dup.select { |k,v| k =~ /(i|s)Sort(Col|Dir)_\d+/ }
71
71
  return options[:order_by] || [] if order_params.blank?
72
72
  order_params.select { |k,v| k =~ /iSortCol_\d+/ }.sort_by(&:first).map do |col,field|
73
73
  i = /iSortCol_(\d+)/.match(col)[1]
@@ -78,28 +78,27 @@ module Mongoid
78
78
  def filter_conditions
79
79
  return unless (query = params[:sSearch]).present?
80
80
 
81
- {"$or" => klass.data_table_searchable_fields.map { |field| { field => /#{query}/i} } }
81
+ b_regex = Boolean.set(params["bRegex"])
82
+
83
+ {
84
+ "$or" => klass.data_table_searchable_fields.map { |field|
85
+ { field => (b_regex === true) ? data_table_regex(query) : query }
86
+ }
87
+ }
82
88
  end
83
89
 
84
90
  def filter_field_conditions
85
- order_params = params.select { |k,v| k =~ /sSearch_\d+/ }.inject({}) do |h,(k,v)|
91
+ params.dup.select { |k,v| k =~ /sSearch_\d+/ }.inject({}) do |h,(k,v)|
86
92
  i = /sSearch_(\d+)/.match(k)[1]
87
93
 
88
94
  field_name = fields[i.to_i]
89
- field = klass.fields[field_name]
90
- field_type = field.respond_to?(:type) ? field.type : String
95
+ #field = klass.fields.dup[field_name]
96
+ #field_type = field.respond_to?(:type) ? field.type : Object
91
97
 
92
98
  query = params["sSearch_#{i}"]
99
+ b_regex = Boolean.set(params["bRegex_#{i}"])
93
100
 
94
- h[field_name] = (if [ Array, String, Symbol ].include?(field_type)
95
- begin
96
- Regexp.new(query)
97
- rescue RegexpError
98
- Regexp.new(Regexp.escape(query))
99
- end
100
- else
101
- query
102
- end) if query.present?
101
+ h[field_name] = (b_regex === true) ? data_table_regex(query) : query if query.present?
103
102
  h
104
103
  end
105
104
  end
@@ -126,6 +125,12 @@ module Mongoid
126
125
  end
127
126
  end
128
127
 
128
+ def data_table_regex(query)
129
+ Regexp.new(query, Regexp::IGNORECASE)
130
+ rescue RegexpError
131
+ Regexp.new(Regexp.escape(query), Regexp::IGNORECASE)
132
+ end
133
+
129
134
  def method_missing(method, *args, &block) #:nodoc:
130
135
  collection.send(method, *args, &block)
131
136
  end
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module DataTable
3
- VERSION = "1.0.0"
3
+ VERSION = "1.0.1"
4
4
  end
5
- end
5
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mongoid-data_table
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.0
5
+ version: 1.0.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jason Dew
@@ -15,6 +15,7 @@ date: 2011-05-17 00:00:00 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
18
+ prerelease: false
18
19
  requirement: &id001 !ruby/object:Gem::Requirement
19
20
  none: false
20
21
  requirements:
@@ -22,10 +23,10 @@ dependencies:
22
23
  - !ruby/object:Gem::Version
23
24
  version: 3.0.0
24
25
  type: :runtime
25
- prerelease: false
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: will_paginate
29
+ prerelease: false
29
30
  requirement: &id002 !ruby/object:Gem::Requirement
30
31
  none: false
31
32
  requirements:
@@ -33,10 +34,10 @@ dependencies:
33
34
  - !ruby/object:Gem::Version
34
35
  version: 3.0.pre2
35
36
  type: :runtime
36
- prerelease: false
37
37
  version_requirements: *id002
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: bson_ext
40
+ prerelease: false
40
41
  requirement: &id003 !ruby/object:Gem::Requirement
41
42
  none: false
42
43
  requirements:
@@ -44,10 +45,10 @@ dependencies:
44
45
  - !ruby/object:Gem::Version
45
46
  version: 1.3.0
46
47
  type: :development
47
- prerelease: false
48
48
  version_requirements: *id003
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: mongoid
51
+ prerelease: false
51
52
  requirement: &id004 !ruby/object:Gem::Requirement
52
53
  none: false
53
54
  requirements:
@@ -55,10 +56,10 @@ dependencies:
55
56
  - !ruby/object:Gem::Version
56
57
  version: 2.0.1
57
58
  type: :development
58
- prerelease: false
59
59
  version_requirements: *id004
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: mocha
62
+ prerelease: false
62
63
  requirement: &id005 !ruby/object:Gem::Requirement
63
64
  none: false
64
65
  requirements:
@@ -66,10 +67,10 @@ dependencies:
66
67
  - !ruby/object:Gem::Version
67
68
  version: 0.9.12
68
69
  type: :development
69
- prerelease: false
70
70
  version_requirements: *id005
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rspec
73
+ prerelease: false
73
74
  requirement: &id006 !ruby/object:Gem::Requirement
74
75
  none: false
75
76
  requirements:
@@ -77,10 +78,10 @@ dependencies:
77
78
  - !ruby/object:Gem::Version
78
79
  version: 2.6.0
79
80
  type: :development
80
- prerelease: false
81
81
  version_requirements: *id006
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: shoulda
84
+ prerelease: false
84
85
  requirement: &id007 !ruby/object:Gem::Requirement
85
86
  none: false
86
87
  requirements:
@@ -88,10 +89,10 @@ dependencies:
88
89
  - !ruby/object:Gem::Version
89
90
  version: 2.11.3
90
91
  type: :development
91
- prerelease: false
92
92
  version_requirements: *id007
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: watchr
95
+ prerelease: false
95
96
  requirement: &id008 !ruby/object:Gem::Requirement
96
97
  none: false
97
98
  requirements:
@@ -99,7 +100,6 @@ dependencies:
99
100
  - !ruby/object:Gem::Version
100
101
  version: "0.7"
101
102
  type: :development
102
- prerelease: false
103
103
  version_requirements: *id008
104
104
  description: Simple data preparation from Mongoid to the jQuery DataTables plugin
105
105
  email:
@@ -145,18 +145,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - ">="
147
147
  - !ruby/object:Gem::Version
148
- hash: 1445524431539221366
149
- segments:
150
- - 0
151
148
  version: "0"
152
149
  required_rubygems_version: !ruby/object:Gem::Requirement
153
150
  none: false
154
151
  requirements:
155
152
  - - ">="
156
153
  - !ruby/object:Gem::Version
157
- hash: 1445524431539221366
158
- segments:
159
- - 0
160
154
  version: "0"
161
155
  requirements: []
162
156
 
@@ -172,3 +166,4 @@ test_files:
172
166
  - spec/unit/mongoid-data_table_spec.rb
173
167
  - spec/unit/mongoid/data_table/proxy_spec.rb
174
168
  - spec/unit/mongoid/data_table_spec.rb
169
+ has_rdoc: