diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb864ab..ab63d87 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -88,10 +88,23 @@ jobs: - postgis # - trilogy exclude: - - rails: rails_7.2.0 - adapter: oracle_enhanced + # Rails 7.2 needs Ruby > 3.1 - rails: rails_7.2.0 ruby: '3.0' + + # Disabled for now because of build error: + # /opt/hostedtoolcache/Ruby/3.0.7/x64/lib/ruby/3.0.0/psych.rb:457:in + # `parse_stream': undefined method `parse' for #>, + # @external_encoding=0> (NoMethodError) + # from + # /home/runner/work/ajax-datatables-rails/ajax-datatables-rails/vendor/bundle/ruby/3.0.0/gems/ruby-oci8-2.2.14/ext/oci8/apiwrap.rb:64:in + # `create_apiwrap' + - rails: rails_7.2.0 + adapter: oracle_enhanced - rails: rails_7.1.0 adapter: oracle_enhanced diff --git a/.rubocop.yml b/.rubocop.yml index f31beda..40b6bdd 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -32,6 +32,7 @@ Style/TrailingCommaInHashLiteral: ########## Layout/LineLength: + Max: 125 Exclude: - ajax-datatables-rails.gemspec diff --git a/Appraisals b/Appraisals index 7536e56..53eb9ac 100644 --- a/Appraisals +++ b/Appraisals @@ -1,26 +1,97 @@ # frozen_string_literal: true -require 'yaml' - -rails_versions = YAML.safe_load_file('appraisal.yml') - -rails_versions.each do |version, gems| - appraise "rails_#{version}" do - gem 'rails', version - gems.each do |name, opts| - if opts['install_if'] - install_if opts['install_if'] do - if opts['version'].empty? - gem name - else - gem name, opts['version'] - end - end - elsif opts['version'].empty? - gem name - else - gem name, opts['version'] - end - end +appraise 'rails_7.0.8' do # rubocop:disable Metrics/BlockLength + gem 'rails', '7.0.8' + + install_if '-> { ENV["DB_ADAPTER"] == "sqlite3" }' do + gem 'sqlite3', '~> 1.5.0' + end + + install_if '-> { ENV["DB_ADAPTER"] == "mysql2" }' do + gem 'mysql2' + end + + install_if '-> { ENV["DB_ADAPTER"] == "trilogy" }' do + gem 'activerecord-trilogy-adapter' + end + + install_if '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' do + gem 'ruby-oci8' + gem 'activerecord-oracle_enhanced-adapter', '~> 7.0.0' + end + + install_if '-> { ENV["DB_ADAPTER"] == "postgis" }' do + gem 'activerecord-postgis-adapter' + end + + # Fix: + # warning: logger was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.5.0 + # Add logger to your Gemfile or gemspec. + install_if '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' do + gem 'base64' + gem 'bigdecimal' + gem 'benchmark' + gem 'drb' + gem 'logger' + gem 'mutex_m' + gem 'ostruct' + end +end + +appraise 'rails_7.1.0' do + gem 'rails', '7.1.0' + + install_if '-> { ENV["DB_ADAPTER"] == "sqlite3" }' do + gem 'sqlite3', '~> 1.5.0' + end + + install_if '-> { ENV["DB_ADAPTER"] == "mysql2" }' do + gem 'mysql2' + end + + install_if '-> { ENV["DB_ADAPTER"] == "trilogy" }' do + gem 'activerecord-trilogy-adapter' + end + + install_if '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' do + gem 'ruby-oci8' + gem 'activerecord-oracle_enhanced-adapter', git: 'https://github.com/rsim/oracle-enhanced.git' + end + + install_if '-> { ENV["DB_ADAPTER"] == "postgis" }' do + gem 'activerecord-postgis-adapter' + end + + # Fix: + # warning: logger was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.5.0 + # Add logger to your Gemfile or gemspec. + install_if '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3.0") }' do + gem 'logger' + gem 'ostruct' + end +end + +appraise 'rails_7.2.0' do + gem 'rails', '7.2.0' + + install_if '-> { ENV["DB_ADAPTER"] == "sqlite3" }' do + gem 'sqlite3', '~> 1.5.0' + end + + install_if '-> { ENV["DB_ADAPTER"] == "mysql2" }' do + gem 'mysql2' + end + + install_if '-> { ENV["DB_ADAPTER"] == "trilogy" }' do + gem 'activerecord-trilogy-adapter' + end + + install_if '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' do + gem 'ruby-oci8' + gem 'activerecord-oracle_enhanced-adapter', git: 'https://github.com/rsim/oracle-enhanced.git' + end + + install_if '-> { ENV["DB_ADAPTER"] == "postgis" }' do + gem 'activerecord-postgis-adapter', git: 'https://github.com/rgeo/activerecord-postgis-adapter.git' end end diff --git a/appraisal.yml b/appraisal.yml deleted file mode 100644 index 35e4f41..0000000 --- a/appraisal.yml +++ /dev/null @@ -1,86 +0,0 @@ ---- -7.0.8: - sqlite3: - version: ~> 1.5.0 - install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }' - mysql2: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }' - activerecord-trilogy-adapter: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "trilogy" }' - activerecord-oracle_enhanced-adapter: - version: ~> 7.0.0 - install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' - ruby-oci8: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' - activerecord-postgis-adapter: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "postgis" }' - base64: - version: '' - install_if: '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' - bigdecimal: - version: '' - install_if: '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' - mutex_m: - version: '' - install_if: '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' - drb: - version: '' - install_if: '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' - - -7.1.0: - sqlite3: - version: ~> 1.5.0 - install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }' - mysql2: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }' - activerecord-trilogy-adapter: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "trilogy" }' - # activerecord-oracle_enhanced-adapter: - # version: ~> 7.0.0 - # install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' - # ruby-oci8: - # version: '' - # install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' - activerecord-postgis-adapter: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "postgis" }' - base64: - version: '' - install_if: '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' - bigdecimal: - version: '' - install_if: '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' - mutex_m: - version: '' - install_if: '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' - drb: - version: '' - install_if: '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' - - -7.2.0: - sqlite3: - version: ~> 1.5.0 - install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }' - mysql2: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }' - activerecord-trilogy-adapter: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "trilogy" }' - # activerecord-oracle_enhanced-adapter: - # version: ~> 7.0.0 - # install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' - # ruby-oci8: - # version: '' - # install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }' - activerecord-postgis-adapter: - version: '' - install_if: '-> { ENV["DB_ADAPTER"] == "postgis" }' diff --git a/gemfiles/rails_7.0.8.gemfile b/gemfiles/rails_7.0.8.gemfile index f986146..1f491ef 100644 --- a/gemfiles/rails_7.0.8.gemfile +++ b/gemfiles/rails_7.0.8.gemfile @@ -36,8 +36,8 @@ install_if -> { ENV["DB_ADAPTER"] == "trilogy" } do end install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do - gem "activerecord-oracle_enhanced-adapter", "~> 7.0.0" gem "ruby-oci8" + gem "activerecord-oracle_enhanced-adapter", "~> 7.0.0" end install_if -> { ENV["DB_ADAPTER"] == "postgis" } do @@ -47,8 +47,11 @@ end install_if -> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") } do gem "base64" gem "bigdecimal" - gem "mutex_m" + gem "benchmark" gem "drb" + gem "logger" + gem "mutex_m" + gem "ostruct" end gemspec path: "../" diff --git a/gemfiles/rails_7.1.0.gemfile b/gemfiles/rails_7.1.0.gemfile index 441f505..97ecb80 100644 --- a/gemfiles/rails_7.1.0.gemfile +++ b/gemfiles/rails_7.1.0.gemfile @@ -35,15 +35,18 @@ install_if -> { ENV["DB_ADAPTER"] == "trilogy" } do gem "activerecord-trilogy-adapter" end +install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do + gem "ruby-oci8" + gem "activerecord-oracle_enhanced-adapter", git: "https://github.com/rsim/oracle-enhanced.git" +end + install_if -> { ENV["DB_ADAPTER"] == "postgis" } do gem "activerecord-postgis-adapter" end -install_if -> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") } do - gem "base64" - gem "bigdecimal" - gem "mutex_m" - gem "drb" +install_if -> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3.0") } do + gem "logger" + gem "ostruct" end gemspec path: "../" diff --git a/gemfiles/rails_7.2.0.gemfile b/gemfiles/rails_7.2.0.gemfile index 652e461..ee0697d 100644 --- a/gemfiles/rails_7.2.0.gemfile +++ b/gemfiles/rails_7.2.0.gemfile @@ -35,8 +35,13 @@ install_if -> { ENV["DB_ADAPTER"] == "trilogy" } do gem "activerecord-trilogy-adapter" end +install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do + gem "ruby-oci8" + gem "activerecord-oracle_enhanced-adapter", git: "https://github.com/rsim/oracle-enhanced.git" +end + install_if -> { ENV["DB_ADAPTER"] == "postgis" } do - gem "activerecord-postgis-adapter" + gem "activerecord-postgis-adapter", git: "https://github.com/rgeo/activerecord-postgis-adapter.git" end gemspec path: "../" diff --git a/lib/ajax-datatables-rails/datatable/column/search.rb b/lib/ajax-datatables-rails/datatable/column/search.rb index 735f8cc..581165f 100644 --- a/lib/ajax-datatables-rails/datatable/column/search.rb +++ b/lib/ajax-datatables-rails/datatable/column/search.rb @@ -48,7 +48,7 @@ def use_regex? # The solution is to bypass regex_search and use non_regex_search with :in operator def regex_search if use_regex? - ::Arel::Nodes::Regexp.new((custom_field? ? field : table[field]), ::Arel::Nodes.build_quoted(formatted_value)) # rubocop:disable Layout/LineLength + ::Arel::Nodes::Regexp.new((custom_field? ? field : table[field]), ::Arel::Nodes.build_quoted(formatted_value)) else non_regex_search end