ajax-datatables-rails 0.4.3 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +120 -0
  3. data/.rubocop.yml +17 -7
  4. data/Appraisals +15 -20
  5. data/CHANGELOG.md +54 -1
  6. data/Gemfile +0 -5
  7. data/Guardfile +16 -0
  8. data/README.md +238 -112
  9. data/Rakefile +1 -0
  10. data/ajax-datatables-rails.gemspec +24 -20
  11. data/bin/_guard-core +29 -0
  12. data/bin/appraisal +29 -0
  13. data/bin/bundle +114 -0
  14. data/bin/guard +29 -0
  15. data/bin/rake +29 -0
  16. data/bin/rspec +29 -0
  17. data/bin/rubocop +29 -0
  18. data/doc/migrate.md +97 -0
  19. data/doc/webpack.md +7 -2
  20. data/gemfiles/{rails_5.2.0.gemfile → rails_5.2.4.gemfile} +3 -5
  21. data/gemfiles/{rails_5.0.7.gemfile → rails_6.0.3.gemfile} +4 -6
  22. data/gemfiles/{rails_5.1.6.gemfile → rails_6.1.0.gemfile} +4 -6
  23. data/lib/ajax-datatables-rails.rb +12 -1
  24. data/lib/ajax-datatables-rails/active_record.rb +7 -0
  25. data/lib/ajax-datatables-rails/base.rb +47 -46
  26. data/lib/ajax-datatables-rails/datatable.rb +6 -0
  27. data/lib/ajax-datatables-rails/datatable/column.rb +65 -20
  28. data/lib/ajax-datatables-rails/datatable/column/date_filter.rb +12 -21
  29. data/lib/ajax-datatables-rails/datatable/column/order.rb +1 -1
  30. data/lib/ajax-datatables-rails/datatable/column/search.rb +37 -22
  31. data/lib/ajax-datatables-rails/datatable/datatable.rb +16 -7
  32. data/lib/ajax-datatables-rails/datatable/simple_order.rb +23 -10
  33. data/lib/ajax-datatables-rails/datatable/simple_search.rb +2 -0
  34. data/lib/ajax-datatables-rails/error.rb +9 -0
  35. data/lib/ajax-datatables-rails/orm.rb +6 -0
  36. data/lib/ajax-datatables-rails/orm/active_record.rb +11 -12
  37. data/lib/ajax-datatables-rails/version.rb +13 -1
  38. data/lib/generators/rails/templates/datatable.rb +1 -1
  39. data/spec/ajax-datatables-rails/base_spec.rb +129 -93
  40. data/spec/ajax-datatables-rails/datatable/column_spec.rb +105 -37
  41. data/spec/ajax-datatables-rails/datatable/datatable_spec.rb +71 -31
  42. data/spec/ajax-datatables-rails/datatable/simple_order_spec.rb +36 -14
  43. data/spec/ajax-datatables-rails/datatable/simple_search_spec.rb +4 -2
  44. data/spec/ajax-datatables-rails/orm/active_record_filter_records_spec.rb +315 -272
  45. data/spec/ajax-datatables-rails/orm/active_record_paginate_records_spec.rb +9 -8
  46. data/spec/ajax-datatables-rails/orm/active_record_sort_records_spec.rb +17 -14
  47. data/spec/factories/user.rb +3 -1
  48. data/spec/install_oracle.sh +9 -3
  49. data/spec/spec_helper.rb +33 -28
  50. data/spec/support/datatables/complex_datatable.rb +31 -0
  51. data/spec/support/datatables/complex_datatable_array.rb +16 -0
  52. data/spec/support/{datatable_cond_date.rb → datatables/datatable_cond_date.rb} +2 -0
  53. data/spec/support/{datatable_cond_numeric.rb → datatables/datatable_cond_numeric.rb} +3 -1
  54. data/spec/support/{datatable_cond_proc.rb → datatables/datatable_cond_proc.rb} +2 -0
  55. data/spec/support/{datatable_cond_string.rb → datatables/datatable_cond_string.rb} +9 -1
  56. data/spec/support/datatables/datatable_cond_unknown.rb +7 -0
  57. data/spec/support/{datatable_order_nulls_last.rb → datatables/datatable_order_nulls_last.rb} +2 -0
  58. data/spec/support/{test_helpers.rb → helpers/params.rb} +17 -42
  59. data/spec/support/{test_models.rb → models/user.rb} +2 -0
  60. data/spec/support/schema.rb +3 -1
  61. metadata +76 -75
  62. data/.travis.yml +0 -80
  63. data/gemfiles/rails_4.0.13.gemfile +0 -14
  64. data/gemfiles/rails_4.1.16.gemfile +0 -14
  65. data/gemfiles/rails_4.2.10.gemfile +0 -14
  66. data/lib/ajax-datatables-rails/config.rb +0 -31
  67. data/lib/ajax_datatables_rails.rb +0 -15
  68. data/lib/generators/datatable/config_generator.rb +0 -19
  69. data/lib/generators/datatable/templates/ajax_datatables_rails_config.rb +0 -12
  70. data/spec/ajax-datatables-rails/configuration_spec.rb +0 -43
  71. data/spec/ajax-datatables-rails/extended_spec.rb +0 -20
  72. data/spec/ajax-datatables-rails/orm/active_record_spec.rb +0 -25
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_support/configurable'
4
-
5
- module AjaxDatatablesRails
6
-
7
- # configure AjaxDatatablesRails global settings
8
- # AjaxDatatablesRails.configure do |config|
9
- # config.db_adapter = :postgresql
10
- # end
11
- def self.configure
12
- yield @config ||= AjaxDatatablesRails::Configuration.new
13
- end
14
-
15
- # AjaxDatatablesRails global settings
16
- def self.config
17
- @config ||= AjaxDatatablesRails::Configuration.new
18
- end
19
-
20
- def self.old_rails?
21
- Rails::VERSION::MAJOR == 4 && (Rails::VERSION::MINOR == 1 || Rails::VERSION::MINOR == 0)
22
- end
23
-
24
- class Configuration
25
- include ActiveSupport::Configurable
26
-
27
- config_accessor(:orm) { :active_record }
28
- config_accessor(:db_adapter) { :postgresql }
29
- config_accessor(:nulls_last) { false }
30
- end
31
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module AjaxDatatablesRails
4
- require 'ajax-datatables-rails/version'
5
- require 'ajax-datatables-rails/config'
6
- require 'ajax-datatables-rails/base'
7
- require 'ajax-datatables-rails/datatable/datatable'
8
- require 'ajax-datatables-rails/datatable/simple_search'
9
- require 'ajax-datatables-rails/datatable/simple_order'
10
- require 'ajax-datatables-rails/datatable/column/search'
11
- require 'ajax-datatables-rails/datatable/column/order'
12
- require 'ajax-datatables-rails/datatable/column/date_filter' unless AjaxDatatablesRails.old_rails?
13
- require 'ajax-datatables-rails/datatable/column'
14
- require 'ajax-datatables-rails/orm/active_record'
15
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails/generators'
4
-
5
- module Datatable
6
- module Generators
7
- class ConfigGenerator < ::Rails::Generators::Base
8
- source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
9
- desc <<DESC
10
- Description:
11
- Creates an initializer file for AjaxDatatablesRails configuration at config/initializers.
12
- DESC
13
-
14
- def copy_config_file
15
- template 'ajax_datatables_rails_config.rb', 'config/initializers/ajax_datatables_rails.rb'
16
- end
17
- end
18
- end
19
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- AjaxDatatablesRails.configure do |config|
4
- # available options for db_adapter are: :pg, :mysql, :mysql2, :sqlite, :sqlite3
5
- # config.db_adapter = :pg
6
-
7
- # Or you can use your rails environment adapter if you want a generic dev and production
8
- # config.db_adapter = Rails.configuration.database_configuration[Rails.env]['adapter'].to_sym
9
-
10
- # available options for orm are: :active_record, :mongoid
11
- # config.orm = :active_record
12
- end
@@ -1,43 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe AjaxDatatablesRails do
4
- describe 'configurations' do
5
- context 'configurable from outside' do
6
- before(:each) do
7
- AjaxDatatablesRails.configure do |config|
8
- config.db_adapter = :mysql
9
- end
10
- end
11
-
12
- it 'should have custom value' do
13
- expect(AjaxDatatablesRails.config.db_adapter).to eq(:mysql)
14
- end
15
- end
16
- end
17
- end
18
-
19
- describe AjaxDatatablesRails::Configuration do
20
- let(:config) { AjaxDatatablesRails::Configuration.new }
21
-
22
- describe 'default config' do
23
- it 'default orm should :active_record' do
24
- expect(config.orm).to eq(:active_record)
25
- end
26
-
27
- it 'default db_adapter should :postgresql' do
28
- expect(config.db_adapter).to eq(:postgresql)
29
- end
30
- end
31
-
32
- describe 'custom config' do
33
- it 'should accept db_adapter custom value' do
34
- config.db_adapter = :mysql
35
- expect(config.db_adapter).to eq(:mysql)
36
- end
37
-
38
- it 'accepts a custom orm value' do
39
- config.orm = :mongoid
40
- expect(config.orm).to eq(:mongoid)
41
- end
42
- end
43
- end
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe AjaxDatatablesRails::Base do
4
- describe 'it can transform search value before asking the database' do
5
- let(:view) { double('view', params: sample_params) }
6
- let(:datatable) { DatatableWithFormater.new(view) }
7
-
8
- before(:each) do
9
- create(:user, username: 'johndoe', email: 'johndoe@example.com', last_name: 'DOE')
10
- create(:user, username: 'msmith', email: 'mary.smith@example.com', last_name: 'SMITH')
11
- datatable.params[:columns]['3'][:search][:value] = 'doe'
12
- end
13
-
14
- it 'should filter records' do
15
- expect(datatable.data.size).to eq 1
16
- item = datatable.data.first
17
- expect(item[:last_name]).to eq 'DOE'
18
- end
19
- end
20
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe AjaxDatatablesRails::ORM::ActiveRecord do
4
- context 'Private API' do
5
- let(:view) { double('view', params: sample_params) }
6
- let(:datatable) { ComplexDatatable.new(view) }
7
-
8
- before(:each) do
9
- create(:user, username: 'johndoe', email: 'johndoe@example.com')
10
- create(:user, username: 'msmith', email: 'mary.smith@example.com')
11
- end
12
-
13
- describe '#fetch_records' do
14
- it 'calls #get_raw_records' do
15
- expect(datatable).to receive(:get_raw_records) { User.all }
16
- datatable.send(:fetch_records)
17
- end
18
-
19
- it 'returns a collection of records' do
20
- expect(datatable).to receive(:get_raw_records) { User.all }
21
- expect(datatable.send(:fetch_records)).to be_a(ActiveRecord::Relation)
22
- end
23
- end
24
- end
25
- end