Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a47cfef

Browse files
Update Rubocop config, fix offenses
1 parent 7c8025f commit a47cfef

18 files changed

+125
-95
lines changed

‎.rubocop.yml‎

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ AllCops:
1111
Exclude:
1212
- bin/*
1313
- gemfiles/*
14-
- spec/**/*
14+
- spec/dummy/**/*
1515
- lib/generators/**/*.rb
1616

1717
#########
@@ -27,12 +27,15 @@ Style/TrailingCommaInArrayLiteral:
2727
Style/TrailingCommaInHashLiteral:
2828
EnforcedStyleForMultiline: comma
2929

30+
Style/BlockDelimiters:
31+
AllowedPatterns: ['expect']
32+
3033
##########
3134
# LAYOUT #
3235
##########
3336

3437
Layout/LineLength:
35-
Max: 125
38+
Max: 150
3639
Exclude:
3740
- ajax-datatables-rails.gemspec
3841

@@ -62,3 +65,22 @@ Layout/HashAlignment:
6265
Naming/FileName:
6366
Exclude:
6467
- lib/ajax-datatables-rails.rb
68+
69+
#########
70+
# RSPEC #
71+
#########
72+
73+
RSpec/MultipleExpectations:
74+
Max: 7
75+
76+
RSpec/NestedGroups:
77+
Max: 6
78+
79+
RSpec/ExampleLength:
80+
Max: 9
81+
82+
RSpec/MultipleMemoizedHelpers:
83+
Max: 6
84+
85+
RSpec/NotToNot:
86+
EnforcedStyle: to_not

‎lib/ajax-datatables-rails/orm/active_record.rb‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ def build_conditions_for_datatable
4242
end.reduce(:or)
4343
end.compact.reduce(:and)
4444
end
45+
4546
def build_conditions_for_selected_columns
4647
search_columns.filter_map(&:search_query).reduce(:and)
4748
end

‎spec/ajax-datatables-rails/base_spec.rb‎ renamed to ‎spec/ajax_datatables_rails/base_spec.rb‎

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
end
3131
end
3232

33-
context 'child class implements view_columns' do
33+
context 'when child class implements view_columns' do
3434
it 'expects a hash based defining columns' do
3535
datatable = ComplexDatatable.new(sample_params)
3636
expect(datatable.view_columns).to be_a(Hash)
@@ -108,7 +108,7 @@
108108

109109
describe 'ORM API' do
110110
context 'when ORM is not implemented' do
111-
let(:datatable) { AjaxDatatablesRails::Base.new(sample_params) }
111+
let(:datatable) { described_class.new(sample_params) }
112112

113113
describe '#fetch_records' do
114114
it 'raises an error if it does not include an ORM module' do
@@ -139,29 +139,30 @@
139139
describe 'it allows method override' do
140140
let(:datatable) do
141141
datatable = Class.new(ComplexDatatable) do
142-
def filter_records(records)
143-
raise NotImplementedError.new('FOO')
142+
def filter_records(_records)
143+
raise NotImplementedError,'FOO'
144144
end
145145

146-
def sort_records(records)
147-
raise NotImplementedError.new('FOO')
146+
def sort_records(_records)
147+
raise NotImplementedError,'FOO'
148148
end
149149

150-
def paginate_records(records)
151-
raise NotImplementedError.new('FOO')
150+
def paginate_records(_records)
151+
raise NotImplementedError,'FOO'
152152
end
153153
end
154154
datatable.new(sample_params)
155155
end
156156

157157
describe '#fetch_records' do
158158
it 'calls #get_raw_records' do
159-
expect(datatable).to receive(:get_raw_records) { User.all }
159+
allow(datatable).to receive(:get_raw_records) { User.all }
160160
datatable.fetch_records
161+
expect(datatable).to have_received(:get_raw_records)
161162
end
162163

163164
it 'returns a collection of records' do
164-
expect(datatable).to receive(:get_raw_records) { User.all }
165+
allow(datatable).to receive(:get_raw_records) { User.all }
165166
expect(datatable.fetch_records).to be_a(ActiveRecord::Relation)
166167
end
167168
end
@@ -204,7 +205,7 @@ def paginate_records(records)
204205
context 'with additional_data' do
205206
it 'returns a hash' do
206207
create_list(:user, 5)
207-
expect(datatable).to receive(:additional_data){{foo: 'bar' }}
208+
allow(datatable).to receive(:additional_data).and_return({foo: 'bar' })
208209
data = datatable.as_json
209210
expect(data[:recordsTotal]).to eq 5
210211
expect(data[:recordsFiltered]).to eq 5
@@ -228,9 +229,10 @@ def paginate_records(records)
228229
end
229230

230231
describe '#column_data' do
231-
let(:datatable) { ComplexDatatable.new(sample_params) }
232232
before { datatable.params[:columns]['0'][:search][:value] = 'doe' }
233233

234+
let(:datatable) { ComplexDatatable.new(sample_params) }
235+
234236
it 'returns column data from params' do
235237
expect(datatable.column_data(:username)).to eq('doe')
236238
expect(datatable.column_data('username')).to eq('doe')

‎spec/ajax-datatables-rails/datatable/column_spec.rb‎ renamed to ‎spec/ajax_datatables_rails/datatable/column_spec.rb‎

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@
1313
before { datatable.params[:columns]['0'][:search][:value] = 'searchvalue' }
1414

1515
it 'is orderable' do
16-
expect(column.orderable?).to eq(true)
16+
expect(column.orderable?).to be(true)
1717
end
1818

1919
it 'sorts nulls last' do
20-
expect(column.nulls_last?).to eq(false)
20+
expect(column.nulls_last?).to be(false)
2121
end
2222

2323
it 'is searchable' do
24-
expect(column.searchable?).to eq(true)
24+
expect(column.searchable?).to be(true)
2525
end
2626

2727
it 'is searched' do
28-
expect(column.searched?).to eq(true)
28+
expect(column.searched?).to be(true)
2929
end
3030

3131
it 'has connected to id column' do
@@ -53,7 +53,7 @@
5353

5454
context 'with other ORM' do
5555
it 'returns the corresponding model' do
56-
expect(User).to receive(:respond_to?).with(:arel_table).and_return(false)
56+
allow(User).to receive(:respond_to?).with(:arel_table).and_return(false)
5757
expect(column.table).to eq User
5858
end
5959
end
@@ -87,7 +87,7 @@
8787
end
8888

8989
it 'does not regex' do
90-
expect(column.search.regexp?).to eq false
90+
expect(column.search.regexp?).to be false
9191
end
9292
end
9393

@@ -97,12 +97,6 @@
9797
end
9898
end
9999

100-
describe '#source' do
101-
it 'is :like by default' do
102-
expect(column.source).to eq('User.username')
103-
end
104-
end
105-
106100
describe '#search_query' do
107101
it 'bulds search query' do
108102
expect(column.search_query.to_sql).to include('%searchvalue%')
@@ -129,10 +123,10 @@
129123
end
130124

131125
describe 'unsearchable column' do
132-
let(:column) { datatable.datatable.columns.find{ |c| c.data == 'email_hash' } }
126+
let(:column) { datatable.datatable.columns.find{ |c| c.data == 'email_hash' } }
133127

134128
it 'is not searchable' do
135-
expect(column.searchable?).to eql(false)
129+
expect(column.searchable?).to be(false)
136130
end
137131
end
138132

@@ -150,91 +144,96 @@
150144
let(:column) { datatable.datatable.columns.find { |c| c.data == 'username' } }
151145

152146
it 'is a proc' do
153-
config = column.instance_variable_get('@view_column')
147+
config = column.instance_variable_get(:@view_column)
154148
filter = config[:cond]
155149
expect(filter).to be_a(Proc)
156-
expect(filter).to receive(:call).with(column, column.formatted_value)
150+
allow(filter).to receive(:call).with(column, column.formatted_value)
157151
column.filter
152+
expect(filter).to have_received(:call).with(column, column.formatted_value)
158153
end
159154
end
160155

161156
describe '#type_cast' do
162157
let(:column) { datatable.datatable.columns.first }
163158

164159
it 'returns VARCHAR if :db_adapter is :pg' do
165-
expect(datatable).to receive(:db_adapter){:pg}
160+
allow(datatable).to receive(:db_adapter).and_return(:pg)
166161
expect(column.send(:type_cast)).to eq('VARCHAR')
167162
end
168163

169164
it 'returns VARCHAR if :db_adapter is :postgre' do
170-
expect(datatable).to receive(:db_adapter){:postgre}
165+
allow(datatable).to receive(:db_adapter).and_return(:postgre)
171166
expect(column.send(:type_cast)).to eq('VARCHAR')
172167
end
173168

174169
it 'returns VARCHAR if :db_adapter is :postgresql' do
175-
expect(datatable).to receive(:db_adapter){:postgresql}
170+
allow(datatable).to receive(:db_adapter).and_return(:postgresql)
176171
expect(column.send(:type_cast)).to eq('VARCHAR')
177172
end
178173

179174
it 'returns VARCHAR if :db_adapter is :postgis' do
180-
expect(datatable).to receive(:db_adapter){:postgis}
175+
allow(datatable).to receive(:db_adapter).and_return(:postgis)
181176
expect(column.send(:type_cast)).to eq('VARCHAR')
182177
end
183178

184179
it 'returns VARCHAR2(4000) if :db_adapter is :oracle' do
185-
expect(datatable).to receive(:db_adapter){:oracle}
180+
allow(datatable).to receive(:db_adapter).and_return(:oracle)
186181
expect(column.send(:type_cast)).to eq('VARCHAR2(4000)')
187182
end
188183

189184
it 'returns VARCHAR2(4000) if :db_adapter is :oracleenhanced' do
190-
expect(datatable).to receive(:db_adapter){:oracleenhanced}
185+
allow(datatable).to receive(:db_adapter).and_return(:oracleenhanced)
191186
expect(column.send(:type_cast)).to eq('VARCHAR2(4000)')
192187
end
193188

194189
it 'returns CHAR if :db_adapter is :mysql2' do
195-
expect(datatable).to receive(:db_adapter){:mysql2}
190+
allow(datatable).to receive(:db_adapter).and_return(:mysql2)
196191
expect(column.send(:type_cast)).to eq('CHAR')
197192
end
198193

199194
it 'returns CHAR if :db_adapter is :trilogy' do
200-
expect(datatable).to receive(:db_adapter){:trilogy}
195+
allow(datatable).to receive(:db_adapter).and_return(:trilogy)
201196
expect(column.send(:type_cast)).to eq('CHAR')
202197
end
203198

204199
it 'returns CHAR if :db_adapter is :mysql' do
205-
expect(datatable).to receive(:db_adapter){:mysql}
200+
allow(datatable).to receive(:db_adapter).and_return(:mysql)
206201
expect(column.send(:type_cast)).to eq('CHAR')
207202
end
208203

209204
it 'returns TEXT if :db_adapter is :sqlite' do
210-
expect(datatable).to receive(:db_adapter){:sqlite}
205+
allow(datatable).to receive(:db_adapter).and_return(:sqlite)
211206
expect(column.send(:type_cast)).to eq('TEXT')
212207
end
213208

214209
it 'returns TEXT if :db_adapter is :sqlite3' do
215-
expect(datatable).to receive(:db_adapter){:sqlite3}
210+
allow(datatable).to receive(:db_adapter).and_return(:sqlite3)
216211
expect(column.send(:type_cast)).to eq('TEXT')
217212
end
218213

219214
it 'returns VARCHAR(4000) if :db_adapter is :sqlserver' do
220-
expect(datatable).to receive(:db_adapter){:sqlserver}
215+
allow(datatable).to receive(:db_adapter).and_return(:sqlserver)
221216
expect(column.send(:type_cast)).to eq('VARCHAR(4000)')
222217
end
223218
end
224219

225220
describe 'when empty column' do
226221
before { datatable.params[:columns]['0'][:data] = '' }
227222

223+
let(:message) { 'Unknown column. Check that `data` field is filled on JS side with the column name' }
224+
228225
it 'raises error' do
229-
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')
226+
expect { datatable.to_json }.to raise_error(AjaxDatatablesRails::Error::InvalidSearchColumn).with_message(message)
230227
end
231228
end
232229

233230
describe 'when unknown column' do
234231
before { datatable.params[:columns]['0'][:data] = 'foo' }
235232

233+
let(:message) { "Check that column 'foo' exists in view_columns" }
234+
236235
it 'raises error' do
237-
expect { datatable.to_json }.to raise_error(AjaxDatatablesRails::Error::InvalidSearchColumn).with_message("Check that column 'foo' exists in view_columns")
236+
expect { datatable.to_json }.to raise_error(AjaxDatatablesRails::Error::InvalidSearchColumn).with_message(message)
238237
end
239238
end
240239
end

‎spec/ajax-datatables-rails/datatable/datatable_spec.rb‎ renamed to ‎spec/ajax_datatables_rails/datatable/datatable_spec.rb‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111

1212
shared_examples 'order methods' do
1313
it 'is orderable' do
14-
expect(datatable.orderable?).to eq(true)
14+
expect(datatable.orderable?).to be(true)
1515
end
1616

1717
it 'is not orderable' do
1818
datatable.options[:order] = nil
19-
expect(datatable.orderable?).to eq(false)
19+
expect(datatable.orderable?).to be(false)
2020
end
2121

2222
it 'has 2 orderable columns' do
@@ -57,19 +57,20 @@
5757
describe 'with json params' do
5858
let(:order_option) { order_option_json }
5959
let(:datatable) { datatable_json }
60+
6061
it_behaves_like 'order methods'
6162
it_behaves_like 'columns methods'
6263
end
6364

6465
describe 'search methods' do
6566
it 'is searchable' do
6667
datatable.options[:search][:value] = 'atom'
67-
expect(datatable.searchable?).to eq(true)
68+
expect(datatable.searchable?).to be(true)
6869
end
6970

7071
it 'is not searchable' do
7172
datatable.options[:search][:value] = nil
72-
expect(datatable.searchable?).to eq(false)
73+
expect(datatable.searchable?).to be(false)
7374
end
7475

7576
it 'child class' do

‎spec/ajax-datatables-rails/datatable/simple_order_spec.rb‎ renamed to ‎spec/ajax_datatables_rails/datatable/simple_order_spec.rb‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
let(:parent) { ComplexDatatable.new(sample_params) }
88
let(:datatable) { parent.datatable }
99
let(:options) { ActiveSupport::HashWithIndifferentAccess.new({ 'column' => '1', 'dir' => 'desc' }) }
10-
let(:simple_order) { AjaxDatatablesRails::Datatable::SimpleOrder.new(datatable, options) }
10+
let(:simple_order) { described_class.new(datatable, options) }
1111

1212
describe 'option methods' do
1313
it 'sql query' do
@@ -32,7 +32,7 @@
3232
describe 'using column option' do
3333
let(:parent) { DatatableOrderNullsLast.new(sample_params) }
3434
let(:sorted_datatable) { parent.datatable }
35-
let(:nulls_last_order) { AjaxDatatablesRails::Datatable::SimpleOrder.new(sorted_datatable, options) }
35+
let(:nulls_last_order) { described_class.new(sorted_datatable, options) }
3636

3737
context 'with postgres database adapter' do
3838
before { parent.db_adapter = :pg }

‎spec/ajax-datatables-rails/datatable/simple_search_spec.rb‎ renamed to ‎spec/ajax_datatables_rails/datatable/simple_search_spec.rb‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
RSpec.describe AjaxDatatablesRails::Datatable::SimpleSearch do
66

77
let(:options) { ActiveSupport::HashWithIndifferentAccess.new({ 'value' => 'search value', 'regex' => 'true' }) }
8-
let(:simple_search) { AjaxDatatablesRails::Datatable::SimpleSearch.new(options) }
8+
let(:simple_search) { described_class.new(options) }
99

1010
describe 'option methods' do
1111
it 'regexp?' do

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /