mongoid-data_table 1.0.0 → 1.0.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.
@@ -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: