ajax-datatables-rails 1.3.0 → 1.4.0

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +5 -23
  3. data/.github/workflows/ci.yml +16 -8
  4. data/.gitignore +6 -3
  5. data/.rubocop.yml +1 -1
  6. data/Appraisals +18 -25
  7. data/CHANGELOG.md +14 -0
  8. data/Gemfile +2 -0
  9. data/README.md +15 -15
  10. data/ajax-datatables-rails.gemspec +5 -2
  11. data/appraisal.yml +56 -0
  12. data/bin/bundle +114 -0
  13. data/bin/rackup +27 -0
  14. data/config.ru +7 -0
  15. data/doc/migrate.md +1 -1
  16. data/gemfiles/rails_5.2.8.gemfile +21 -0
  17. data/gemfiles/rails_6.0.6.gemfile +21 -0
  18. data/gemfiles/rails_6.1.7.gemfile +21 -0
  19. data/gemfiles/rails_7.0.4.gemfile +21 -0
  20. data/lib/ajax-datatables-rails/base.rb +21 -1
  21. data/lib/ajax-datatables-rails/datatable/column/search.rb +8 -8
  22. data/lib/ajax-datatables-rails/datatable/column.rb +10 -9
  23. data/lib/ajax-datatables-rails/datatable/datatable.rb +0 -1
  24. data/lib/ajax-datatables-rails/version.rb +1 -1
  25. data/spec/ajax-datatables-rails/base_spec.rb +39 -19
  26. data/spec/ajax-datatables-rails/datatable/column_spec.rb +30 -33
  27. data/spec/ajax-datatables-rails/datatable/datatable_spec.rb +12 -10
  28. data/spec/ajax-datatables-rails/datatable/simple_order_spec.rb +5 -3
  29. data/spec/ajax-datatables-rails/datatable/simple_search_spec.rb +4 -2
  30. data/spec/ajax-datatables-rails/orm/active_record_filter_records_spec.rb +109 -120
  31. data/spec/ajax-datatables-rails/orm/active_record_paginate_records_spec.rb +6 -4
  32. data/spec/ajax-datatables-rails/orm/active_record_sort_records_spec.rb +7 -5
  33. data/spec/dummy/app/assets/config/manifest.js +0 -0
  34. data/spec/dummy/config/database.yml +25 -0
  35. data/spec/dummy/config/routes.rb +5 -0
  36. data/spec/dummy/config/storage.yml +3 -0
  37. data/spec/{support → dummy/db}/schema.rb +3 -4
  38. data/spec/dummy/log/.gitignore +1 -0
  39. data/spec/dummy/public/favicon.ico +0 -0
  40. data/spec/factories/user.rb +3 -1
  41. data/spec/spec_helper.rb +32 -19
  42. data/spec/support/datatables/complex_datatable.rb +4 -0
  43. data/spec/support/datatables/complex_datatable_array.rb +2 -0
  44. data/spec/support/datatables/datatable_cond_date.rb +2 -0
  45. data/spec/support/datatables/datatable_cond_numeric.rb +2 -0
  46. data/spec/support/datatables/datatable_cond_proc.rb +2 -0
  47. data/spec/support/datatables/datatable_cond_string.rb +4 -2
  48. data/spec/support/datatables/datatable_cond_unknown.rb +2 -0
  49. data/spec/support/datatables/datatable_custom_column.rb +17 -0
  50. data/spec/support/datatables/datatable_order_nulls_last.rb +2 -0
  51. data/spec/support/helpers/params.rb +14 -6
  52. data/spec/support/models/user.rb +5 -0
  53. metadata +65 -12
  54. data/gemfiles/rails_5.2.4.gemfile +0 -11
  55. data/gemfiles/rails_6.0.3.gemfile +0 -11
  56. data/gemfiles/rails_6.1.0.gemfile +0 -11
  57. data/spec/ajax-datatables-rails/orm/active_record_spec.rb +0 -24
@@ -36,11 +36,11 @@ module AjaxDatatablesRails
36
36
  end
37
37
 
38
38
  def model
39
- @model ||= source.split('.').first.constantize
39
+ @model ||= custom_field? ? source : source.split('.').first.constantize
40
40
  end
41
41
 
42
42
  def field
43
- @field ||= source.split('.').last.to_sym
43
+ @field ||= custom_field? ? source : source.split('.').last.to_sym
44
44
  end
45
45
 
46
46
  def custom_field?
@@ -66,13 +66,14 @@ module AjaxDatatablesRails
66
66
  TYPE_CAST_SQLSERVER = 'VARCHAR(4000)'
67
67
 
68
68
  DB_ADAPTER_TYPE_CAST = {
69
- mysql: TYPE_CAST_MYSQL,
70
- mysql2: TYPE_CAST_MYSQL,
71
- sqlite: TYPE_CAST_SQLITE,
72
- sqlite3: TYPE_CAST_SQLITE,
73
- oracle: TYPE_CAST_ORACLE,
74
- oracleenhanced: TYPE_CAST_ORACLE,
75
- sqlserver: TYPE_CAST_SQLSERVER,
69
+ mysql: TYPE_CAST_MYSQL,
70
+ mysql2: TYPE_CAST_MYSQL,
71
+ sqlite: TYPE_CAST_SQLITE,
72
+ sqlite3: TYPE_CAST_SQLITE,
73
+ oracle: TYPE_CAST_ORACLE,
74
+ oracleenhanced: TYPE_CAST_ORACLE,
75
+ oracle_enhanced: TYPE_CAST_ORACLE,
76
+ sqlserver: TYPE_CAST_SQLSERVER,
76
77
  }.freeze
77
78
 
78
79
  private_constant :TYPE_CAST_DEFAULT
@@ -2,7 +2,6 @@
2
2
 
3
3
  module AjaxDatatablesRails
4
4
  module Datatable
5
-
6
5
  class Datatable
7
6
  attr_reader :options
8
7
 
@@ -8,7 +8,7 @@ module AjaxDatatablesRails
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 1
11
- MINOR = 3
11
+ MINOR = 4
12
12
  TINY = 0
13
13
  PRE = nil
14
14
 
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe AjaxDatatablesRails::Base do
5
+ RSpec.describe AjaxDatatablesRails::Base do
4
6
 
5
7
  describe 'an instance' do
6
8
  it 'requires a hash of params' do
@@ -15,9 +17,11 @@ describe AjaxDatatablesRails::Base do
15
17
 
16
18
  describe 'User API' do
17
19
  describe '#view_columns' do
18
- it 'raises an error if not defined by the user' do
19
- datatable = described_class.new(sample_params)
20
- expect { datatable.view_columns }.to raise_error NotImplementedError
20
+ context 'when method is not defined by the user' do
21
+ it 'raises an error' do
22
+ datatable = described_class.new(sample_params)
23
+ expect { datatable.view_columns }.to raise_error NotImplementedError
24
+ end
21
25
  end
22
26
 
23
27
  context 'child class implements view_columns' do
@@ -29,22 +33,26 @@ describe AjaxDatatablesRails::Base do
29
33
  end
30
34
 
31
35
  describe '#get_raw_records' do
32
- it 'raises an error if not defined by the user' do
33
- datatable = described_class.new(sample_params)
34
- expect { datatable.get_raw_records }.to raise_error NotImplementedError
36
+ context 'when method is not defined by the user' do
37
+ it 'raises an error' do
38
+ datatable = described_class.new(sample_params)
39
+ expect { datatable.get_raw_records }.to raise_error NotImplementedError
40
+ end
35
41
  end
36
42
  end
37
43
 
38
44
  describe '#data' do
39
- it 'raises an error if not defined by the user' do
40
- datatable = described_class.new(sample_params)
41
- expect { datatable.data }.to raise_error NotImplementedError
45
+ context 'when method is not defined by the user' do
46
+ it 'raises an error' do
47
+ datatable = described_class.new(sample_params)
48
+ expect { datatable.data }.to raise_error NotImplementedError
49
+ end
42
50
  end
43
51
 
44
52
  context 'when data is defined as a hash' do
45
53
  let(:datatable) { ComplexDatatable.new(sample_params) }
46
54
 
47
- it 'should return an array of hashes' do
55
+ it 'returns an array of hashes' do
48
56
  create_list(:user, 5)
49
57
  expect(datatable.data).to be_a(Array)
50
58
  expect(datatable.data.size).to eq 5
@@ -52,7 +60,7 @@ describe AjaxDatatablesRails::Base do
52
60
  expect(item).to be_a(Hash)
53
61
  end
54
62
 
55
- it 'should html escape data' do
63
+ it 'htmls escape data' do
56
64
  create(:user, first_name: 'Name "><img src=x onerror=alert("first_name")>', last_name: 'Name "><img src=x onerror=alert("last_name")>')
57
65
  data = datatable.send(:sanitize_data, datatable.data)
58
66
  item = data.first
@@ -64,7 +72,7 @@ describe AjaxDatatablesRails::Base do
64
72
  context 'when data is defined as a array' do
65
73
  let(:datatable) { ComplexDatatableArray.new(sample_params) }
66
74
 
67
- it 'should return an array of arrays' do
75
+ it 'returns an array of arrays' do
68
76
  create_list(:user, 5)
69
77
  expect(datatable.data).to be_a(Array)
70
78
  expect(datatable.data.size).to eq 5
@@ -72,7 +80,7 @@ describe AjaxDatatablesRails::Base do
72
80
  expect(item).to be_a(Array)
73
81
  end
74
82
 
75
- it 'should html escape data' do
83
+ it 'htmls escape data' do
76
84
  create(:user, first_name: 'Name "><img src=x onerror=alert("first_name")>', last_name: 'Name "><img src=x onerror=alert("last_name")>')
77
85
  data = datatable.send(:sanitize_data, datatable.data)
78
86
  item = data.first
@@ -131,6 +139,18 @@ describe AjaxDatatablesRails::Base do
131
139
  datatable.new(sample_params)
132
140
  end
133
141
 
142
+ describe '#fetch_records' do
143
+ it 'calls #get_raw_records' do
144
+ expect(datatable).to receive(:get_raw_records) { User.all }
145
+ datatable.fetch_records
146
+ end
147
+
148
+ it 'returns a collection of records' do
149
+ expect(datatable).to receive(:get_raw_records) { User.all }
150
+ expect(datatable.fetch_records).to be_a(ActiveRecord::Relation)
151
+ end
152
+ end
153
+
134
154
  describe '#filter_records' do
135
155
  it {
136
156
  expect { datatable.filter_records([]) }.to raise_error(NotImplementedError).with_message('FOO')
@@ -156,7 +176,7 @@ describe AjaxDatatablesRails::Base do
156
176
  describe '#as_json' do
157
177
  let(:datatable) { ComplexDatatable.new(sample_params) }
158
178
 
159
- it 'should return a hash' do
179
+ it 'returns a hash' do
160
180
  create_list(:user, 5)
161
181
  data = datatable.as_json
162
182
  expect(data[:recordsTotal]).to eq 5
@@ -166,9 +186,9 @@ describe AjaxDatatablesRails::Base do
166
186
  end
167
187
 
168
188
  context 'with additional_data' do
169
- it 'should return a hash' do
189
+ it 'returns a hash' do
170
190
  create_list(:user, 5)
171
- expect(datatable).to receive(:additional_data){ { foo: 'bar' } }
191
+ expect(datatable).to receive(:additional_data) { { foo: 'bar' } }
172
192
  data = datatable.as_json
173
193
  expect(data[:recordsTotal]).to eq 5
174
194
  expect(data[:recordsFiltered]).to eq 5
@@ -184,7 +204,7 @@ describe AjaxDatatablesRails::Base do
184
204
  describe '#column_id' do
185
205
  let(:datatable) { ComplexDatatable.new(sample_params) }
186
206
 
187
- it 'should return column id from view_columns hash' do
207
+ it 'returns column id from view_columns hash' do
188
208
  expect(datatable.column_id(:username)).to eq(0)
189
209
  expect(datatable.column_id('username')).to eq(0)
190
210
  end
@@ -194,7 +214,7 @@ describe AjaxDatatablesRails::Base do
194
214
  let(:datatable) { ComplexDatatable.new(sample_params) }
195
215
  before { datatable.params[:columns]['0'][:search][:value] = 'doe' }
196
216
 
197
- it 'should return column data from params' do
217
+ it 'returns column data from params' do
198
218
  expect(datatable.column_data(:username)).to eq('doe')
199
219
  expect(datatable.column_data('username')).to eq('doe')
200
220
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe AjaxDatatablesRails::Datatable::Column do
5
+ RSpec.describe AjaxDatatablesRails::Datatable::Column do
4
6
 
5
7
  let(:datatable) { ComplexDatatable.new(sample_params) }
6
8
 
@@ -8,50 +10,49 @@ describe AjaxDatatablesRails::Datatable::Column do
8
10
 
9
11
  let(:column) { datatable.datatable.columns.first }
10
12
 
11
- before do
12
- datatable.params[:columns] = {'0'=>{'data'=>'username', 'name'=>'', 'searchable'=>'true', 'orderable'=>'true', 'search'=>{'value'=>'searchvalue', 'regex'=>'false'}}}
13
- end
13
+ before { datatable.params[:columns]['0'][:search][:value] = 'searchvalue' }
14
14
 
15
- it 'should be orderable' do
15
+ it 'is orderable' do
16
16
  expect(column.orderable?).to eq(true)
17
17
  end
18
18
 
19
- it 'should sort nulls last' do
19
+ it 'sorts nulls last' do
20
20
  expect(column.nulls_last?).to eq(false)
21
21
  end
22
22
 
23
- it 'should be searchable' do
23
+ it 'is searchable' do
24
24
  expect(column.searchable?).to eq(true)
25
25
  end
26
26
 
27
- it 'should be searched' do
27
+ it 'is searched' do
28
28
  expect(column.searched?).to eq(true)
29
29
  end
30
30
 
31
- it 'should have connected to id column' do
31
+ it 'has connected to id column' do
32
32
  expect(column.data).to eq('username')
33
33
  end
34
34
 
35
35
  describe '#data' do
36
- it 'should return the data from params' do
36
+ it 'returns the data from params' do
37
37
  expect(column.data).to eq 'username'
38
38
  end
39
39
  end
40
40
 
41
41
  describe '#source' do
42
- it 'should return the data source from view_column' do
42
+ it 'returns the data source from view_column' do
43
43
  expect(column.source).to eq 'User.username'
44
44
  end
45
45
  end
46
46
 
47
47
  describe '#table' do
48
48
  context 'with ActiveRecord ORM' do
49
- it 'should return the corresponding AR table' do
49
+ it 'returns the corresponding AR table' do
50
50
  expect(column.table).to eq User.arel_table
51
51
  end
52
52
  end
53
+
53
54
  context 'with other ORM' do
54
- it 'should return the corresponding model' do
55
+ it 'returns the corresponding model' do
55
56
  expect(User).to receive(:respond_to?).with(:arel_table).and_return(false)
56
57
  expect(column.table).to eq User
57
58
  end
@@ -59,19 +60,19 @@ describe AjaxDatatablesRails::Datatable::Column do
59
60
  end
60
61
 
61
62
  describe '#model' do
62
- it 'should return the corresponding AR model' do
63
+ it 'returns the corresponding AR model' do
63
64
  expect(column.model).to eq User
64
65
  end
65
66
  end
66
67
 
67
68
  describe '#field' do
68
- it 'should return the corresponding field in DB' do
69
+ it 'returns the corresponding field in DB' do
69
70
  expect(column.field).to eq :username
70
71
  end
71
72
  end
72
73
 
73
74
  describe '#custom_field?' do
74
- it 'should return false if field is bound to an AR field' do
75
+ it 'returns false if field is bound to an AR field' do
75
76
  expect(column.custom_field?).to be false
76
77
  end
77
78
  end
@@ -81,47 +82,47 @@ describe AjaxDatatablesRails::Datatable::Column do
81
82
  expect(column.search).to be_a(AjaxDatatablesRails::Datatable::SimpleSearch)
82
83
  end
83
84
 
84
- it 'should have search value' do
85
+ it 'has search value' do
85
86
  expect(column.search.value).to eq('searchvalue')
86
87
  end
87
88
 
88
- it 'should not regex' do
89
+ it 'does not regex' do
89
90
  expect(column.search.regexp?).to eq false
90
91
  end
91
92
  end
92
93
 
93
94
  describe '#cond' do
94
- it 'should be :like by default' do
95
+ it 'is :like by default' do
95
96
  expect(column.cond).to eq(:like)
96
97
  end
97
98
  end
98
99
 
99
100
  describe '#source' do
100
- it 'should be :like by default' do
101
+ it 'is :like by default' do
101
102
  expect(column.source).to eq('User.username')
102
103
  end
103
104
  end
104
105
 
105
106
  describe '#search_query' do
106
- it 'should buld search query' do
107
+ it 'bulds search query' do
107
108
  expect(column.search_query.to_sql).to include('%searchvalue%')
108
109
  end
109
110
  end
110
111
 
111
112
  describe '#sort_query' do
112
- it 'should build sort query' do
113
+ it 'builds sort query' do
113
114
  expect(column.sort_query).to eq('users.username')
114
115
  end
115
116
  end
116
117
 
117
118
  describe '#use_regex?' do
118
- it 'should be true by default' do
119
+ it 'is true by default' do
119
120
  expect(column.use_regex?).to be true
120
121
  end
121
122
  end
122
123
 
123
124
  describe '#delimiter' do
124
- it 'should be - by default' do
125
+ it 'is - by default' do
125
126
  expect(column.delimiter).to eq('-')
126
127
  end
127
128
  end
@@ -131,7 +132,7 @@ describe AjaxDatatablesRails::Datatable::Column do
131
132
  let(:datatable) { DatatableWithFormater.new(sample_params) }
132
133
  let(:column) { datatable.datatable.columns.find { |c| c.data == 'last_name' } }
133
134
 
134
- it 'should be a proc' do
135
+ it 'is a proc' do
135
136
  expect(column.formatter).to be_a(Proc)
136
137
  end
137
138
  end
@@ -140,7 +141,7 @@ describe AjaxDatatablesRails::Datatable::Column do
140
141
  let(:datatable) { DatatableCondProc.new(sample_params) }
141
142
  let(:column) { datatable.datatable.columns.find { |c| c.data == 'username' } }
142
143
 
143
- it 'should be a proc' do
144
+ it 'is a proc' do
144
145
  config = column.instance_variable_get('@view_column')
145
146
  filter = config[:cond]
146
147
  expect(filter).to be_a(Proc)
@@ -204,19 +205,15 @@ describe AjaxDatatablesRails::Datatable::Column do
204
205
  end
205
206
 
206
207
  describe 'when empty column' do
207
- before do
208
- datatable.params[:columns] = {'0'=>{'data'=>'', 'name'=>'', 'searchable'=>'true', 'orderable'=>'true', 'search'=>{'value'=>'searchvalue', 'regex'=>'false'}}}
209
- end
208
+ before { datatable.params[:columns]['0'][:data] = '' }
210
209
 
211
210
  it 'raises error' do
212
- expect { datatable.to_json }.to raise_error(AjaxDatatablesRails::Error::InvalidSearchColumn).with_message("Unknown column. Check that `data` field is filled on JS side with the column name")
211
+ expect { datatable.to_json }.to raise_error(AjaxDatatablesRails::Error::InvalidSearchColumn).with_message('Unknown column. Check that `data` field is filled on JS side with the column name')
213
212
  end
214
213
  end
215
214
 
216
215
  describe 'when unknown column' do
217
- before do
218
- datatable.params[:columns] = {'0'=>{'data'=>'foo', 'name'=>'', 'searchable'=>'true', 'orderable'=>'true', 'search'=>{'value'=>'searchvalue', 'regex'=>'false'}}}
219
- end
216
+ before { datatable.params[:columns]['0'][:data] = 'foo' }
220
217
 
221
218
  it 'raises error' do
222
219
  expect { datatable.to_json }.to raise_error(AjaxDatatablesRails::Error::InvalidSearchColumn).with_message("Check that column 'foo' exists in view_columns")
@@ -1,23 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe AjaxDatatablesRails::Datatable::Datatable do
5
+ RSpec.describe AjaxDatatablesRails::Datatable::Datatable do
4
6
 
5
7
  let(:datatable) { ComplexDatatable.new(sample_params).datatable }
6
8
  let(:datatable_json) { ComplexDatatable.new(sample_params_json).datatable }
7
- let(:order_option) { {'0'=>{'column'=>'0', 'dir'=>'asc'}, '1'=>{'column'=>'1', 'dir'=>'desc'}} }
8
- let(:order_option_json) { [{'column'=>'0', 'dir'=>'asc'}, {'column'=>'1', 'dir'=>'desc'}] }
9
+ let(:order_option) { { '0' => { 'column' => '0', 'dir' => 'asc' }, '1' => { 'column' => '1', 'dir' => 'desc' } } }
10
+ let(:order_option_json) { [{ 'column' => '0', 'dir' => 'asc' }, { 'column' => '1', 'dir' => 'desc' }] }
9
11
 
10
12
  shared_examples 'order methods' do
11
- it 'should be orderable' do
13
+ it 'is orderable' do
12
14
  expect(datatable.orderable?).to eq(true)
13
15
  end
14
16
 
15
- it 'should not be orderable' do
17
+ it 'is not orderable' do
16
18
  datatable.options[:order] = nil
17
19
  expect(datatable.orderable?).to eq(false)
18
20
  end
19
21
 
20
- it 'should have 2 orderable columns' do
22
+ it 'has 2 orderable columns' do
21
23
  datatable.options[:order] = order_option
22
24
  expect(datatable.orders.count).to eq(2)
23
25
  end
@@ -38,8 +40,8 @@ describe AjaxDatatablesRails::Datatable::Datatable do
38
40
  end
39
41
 
40
42
  shared_examples 'columns methods' do
41
- it 'should have 4 columns' do
42
- expect(datatable.columns.count).to eq(6)
43
+ it 'has 7 columns' do
44
+ expect(datatable.columns.count).to eq(7)
43
45
  end
44
46
 
45
47
  it 'child class' do
@@ -60,12 +62,12 @@ describe AjaxDatatablesRails::Datatable::Datatable do
60
62
  end
61
63
 
62
64
  describe 'search methods' do
63
- it 'should be searchable' do
65
+ it 'is searchable' do
64
66
  datatable.options[:search][:value] = 'atom'
65
67
  expect(datatable.searchable?).to eq(true)
66
68
  end
67
69
 
68
- it 'should not be searchable' do
70
+ it 'is not searchable' do
69
71
  datatable.options[:search][:value] = nil
70
72
  expect(datatable.searchable?).to eq(false)
71
73
  end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe AjaxDatatablesRails::Datatable::SimpleOrder do
5
+ RSpec.describe AjaxDatatablesRails::Datatable::SimpleOrder do
4
6
 
5
7
  let(:parent) { ComplexDatatable.new(sample_params) }
6
8
  let(:datatable) { parent.datatable }
7
- let(:options) { ActiveSupport::HashWithIndifferentAccess.new({'column' => '1', 'dir' => 'desc'}) }
9
+ let(:options) { ActiveSupport::HashWithIndifferentAccess.new({ 'column' => '1', 'dir' => 'desc' }) }
8
10
  let(:simple_order) { AjaxDatatablesRails::Datatable::SimpleOrder.new(datatable, options) }
9
11
 
10
12
  describe 'option methods' do
@@ -19,7 +21,7 @@ describe AjaxDatatablesRails::Datatable::SimpleOrder do
19
21
  after { parent.nulls_last = false }
20
22
 
21
23
  it 'sql query' do
22
- skip('unsupported database adapter') if ENV['DB_ADAPTER'] == 'oracle_enhanced'
24
+ skip('unsupported database adapter') if RunningSpec.oracle?
23
25
 
24
26
  expect(simple_order.query('email')).to eq(
25
27
  "email DESC #{nulls_last_sql(parent)}"
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe AjaxDatatablesRails::Datatable::SimpleSearch do
5
+ RSpec.describe AjaxDatatablesRails::Datatable::SimpleSearch do
4
6
 
5
- let(:options) { ActiveSupport::HashWithIndifferentAccess.new({'value' => 'search value', 'regex' => 'true'}) }
7
+ let(:options) { ActiveSupport::HashWithIndifferentAccess.new({ 'value' => 'search value', 'regex' => 'true' }) }
6
8
  let(:simple_search) { AjaxDatatablesRails::Datatable::SimpleSearch.new(options) }
7
9
 
8
10
  describe 'option methods' do