diff --git a/.gitignore b/.gitignore index 8f7c852..e74d32b 100755 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ test/standalone/db/*.sqlite3 test/standalone/db/*.sqlite3-journal test/standalone/log/*.log test/standalone/tmp/ +Gemfile.lock \ No newline at end of file diff --git a/Gemfile b/Gemfile index 0af694e..fa75df1 100755 --- a/Gemfile +++ b/Gemfile @@ -1,26 +1,3 @@ source 'https://rubygems.org' gemspec - -gem 'rails' -gem 'terminal-table' -gem 'simple_form', '>= 5.0.1' -gem 'ransack', '>= 2.3.2' -gem 'kaminari', '>= 0.17.0' - -# for Rails 5+ -gem 'rubyzip', '>= 1.2.1' -gem 'caxlsx' -gem 'caxlsx_rails' - -group :assets do - gem 'uglifier' -end - -group :test do - gem "sqlite3", '~> 1.4' -end - -gem 'will_paginate' - -gem 'paranoia' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock old mode 100755 new mode 100644 index 05e40a2..18c9353 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,196 +1,160 @@ PATH remote: . specs: - rails_db (2.4.1) + rails_db (2.5.0) + actionmailer + actionpack activerecord kaminari - rails (>= 5.0.0) + railties + rake ransack (>= 2.3.2) + rubyzip (>= 1.2.1) simple_form (>= 5.0.1) + sprockets-rails terminal-table + uglifier GEM remote: https://rubygems.org/ specs: - actioncable (6.1.3.2) - actionpack (= 6.1.3.2) - activesupport (= 6.1.3.2) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.1.3.2) - actionpack (= 6.1.3.2) - activejob (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) - mail (>= 2.7.1) - actionmailer (6.1.3.2) - actionpack (= 6.1.3.2) - actionview (= 6.1.3.2) - activejob (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionmailer (6.1.6) + actionpack (= 6.1.6) + actionview (= 6.1.6) + activejob (= 6.1.6) + activesupport (= 6.1.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.3.2) - actionview (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionpack (6.1.6) + actionview (= 6.1.6) + activesupport (= 6.1.6) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.3.2) - actionpack (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) - nokogiri (>= 1.8.5) - actionview (6.1.3.2) - activesupport (= 6.1.3.2) + actionview (6.1.6) + activesupport (= 6.1.6) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.3.2) - activesupport (= 6.1.3.2) + activejob (6.1.6) + activesupport (= 6.1.6) globalid (>= 0.3.6) - activemodel (6.1.3.2) - activesupport (= 6.1.3.2) - activerecord (6.1.3.2) - activemodel (= 6.1.3.2) - activesupport (= 6.1.3.2) - activestorage (6.1.3.2) - actionpack (= 6.1.3.2) - activejob (= 6.1.3.2) - activerecord (= 6.1.3.2) - activesupport (= 6.1.3.2) - marcel (~> 1.0.0) - mini_mime (~> 1.0.2) - activesupport (6.1.3.2) + activemodel (6.1.6) + activesupport (= 6.1.6) + activerecord (6.1.6) + activemodel (= 6.1.6) + activesupport (= 6.1.6) + activesupport (6.1.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) builder (3.2.4) - caxlsx (3.1.0) + caxlsx (3.2.0) htmlentities (~> 4.3, >= 4.3.4) marcel (~> 1.0) nokogiri (~> 1.10, >= 1.10.4) rubyzip (>= 1.3.0, < 3) - caxlsx_rails (0.6.2) + caxlsx_rails (0.6.3) actionpack (>= 3.1) caxlsx (>= 3.0) coderay (1.1.3) - concurrent-ruby (1.1.9) + concurrent-ruby (1.1.10) crass (1.0.6) erubi (1.10.0) execjs (2.8.1) - globalid (0.4.2) - activesupport (>= 4.2.0) + globalid (1.0.0) + activesupport (>= 5.0) htmlentities (4.3.4) - i18n (1.8.10) + i18n (1.10.0) concurrent-ruby (~> 1.0) - kaminari (1.2.1) + kaminari (1.2.2) activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.1) - kaminari-activerecord (= 1.2.1) - kaminari-core (= 1.2.1) - kaminari-actionview (1.2.1) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) actionview - kaminari-core (= 1.2.1) - kaminari-activerecord (1.2.1) + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) activerecord - kaminari-core (= 1.2.1) - kaminari-core (1.2.1) + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) launchy (2.5.0) addressable (~> 2.7) - loofah (2.10.0) + loofah (2.18.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.1) + marcel (1.0.2) method_source (1.0.0) - mime-types (2.99.3) - mini_mime (1.0.3) - mini_portile2 (2.5.3) - minitest (5.14.4) - mysql2 (0.3.20) - nio4r (2.5.7) - nokogiri (1.11.7) - mini_portile2 (~> 2.5.0) + mime-types (3.4.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2022.0105) + mini_mime (1.1.2) + mini_portile2 (2.8.0) + minitest (5.15.0) + mysql2 (0.5.4) + nokogiri (1.13.6) + mini_portile2 (~> 2.8.0) racc (~> 1.4) - paranoia (2.4.3) - activerecord (>= 4.0, < 6.2) - pg (1.2.3) + paranoia (2.6.0) + activerecord (>= 5.1, < 7.1) + pg (1.3.5) pry (0.14.1) coderay (~> 1.1) method_source (~> 1.0) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (4.0.6) - racc (1.5.2) - rack (2.2.3) + public_suffix (4.0.7) + racc (1.6.0) + rack (2.2.3.1) rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.3.2) - actioncable (= 6.1.3.2) - actionmailbox (= 6.1.3.2) - actionmailer (= 6.1.3.2) - actionpack (= 6.1.3.2) - actiontext (= 6.1.3.2) - actionview (= 6.1.3.2) - activejob (= 6.1.3.2) - activemodel (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) - bundler (>= 1.15.0) - railties (= 6.1.3.2) - sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) + rails-html-sanitizer (1.4.2) loofah (~> 2.3) - railties (6.1.3.2) - actionpack (= 6.1.3.2) - activesupport (= 6.1.3.2) + railties (6.1.6) + actionpack (= 6.1.6) + activesupport (= 6.1.6) method_source - rake (>= 0.8.7) + rake (>= 12.2) thor (~> 1.0) - rake (13.0.3) - ransack (2.4.2) - activerecord (>= 5.2.4) - activesupport (>= 5.2.4) + rake (13.0.6) + ransack (3.0.1) + activerecord (>= 6.0.4) + activesupport (>= 6.0.4) i18n - rubyzip (2.3.0) + rubyzip (2.3.2) simple_form (5.1.0) actionpack (>= 5.2) activemodel (>= 5.2) - sprockets (4.0.2) + sprockets (4.0.3) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) sprockets (>= 3.0.0) sqlite3 (1.4.2) - terminal-table (3.0.1) + terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - thor (1.1.0) + thor (1.2.1) tzinfo (2.0.4) concurrent-ruby (~> 1.0) uglifier (4.2.0) execjs (>= 0.3.0, < 3) - unicode-display_width (2.0.0) - websocket-driver (0.7.4) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - will_paginate (3.3.0) - zeitwerk (2.4.2) + unicode-display_width (2.1.0) + will_paginate (3.3.1) + zeitwerk (2.5.4) PLATFORMS ruby @@ -198,22 +162,15 @@ PLATFORMS DEPENDENCIES caxlsx caxlsx_rails - kaminari (>= 0.17.0) launchy - mime-types (< 3.0) - mysql2 (<= 0.3.20) + mime-types + mysql2 paranoia pg pry-rails - rails rails_db! - ransack (>= 2.3.2) - rubyzip (>= 1.2.1) - simple_form (>= 5.0.1) - sqlite3 (~> 1.4) - terminal-table - uglifier + sqlite3 (>= 1.4) will_paginate BUNDLED WITH - 1.17.3 + 2.3.15 diff --git a/Rakefile b/Rakefile index 14c5057..5481378 100755 --- a/Rakefile +++ b/Rakefile @@ -15,11 +15,10 @@ RDoc::Task.new(:rdoc) do |rdoc| end APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__) -load 'rails/tasks/engine.rake' - - -load 'rails/tasks/statistics.rake' +# FIXME: these directories/files are not present in the gem directory... +# load 'rails/tasks/engine.rake' +# load 'rails/tasks/statistics.rake' Bundler::GemHelper.install_tasks diff --git a/bin/rails b/bin/rails index b97ae54..fe94380 100755 --- a/bin/rails +++ b/bin/rails @@ -8,5 +8,10 @@ ENGINE_PATH = File.expand_path('../../lib/rails_db/engine', __FILE__) ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) -require 'rails/all' +# Require only the minimum Rails classes +require_relative 'rails_db/config/rails_classes' + +require 'caxlsx' +require 'caxlsx_rails' + require 'rails/engine/commands' diff --git a/config/manifest.js b/config/manifest.js new file mode 100644 index 0000000..65db7d1 --- /dev/null +++ b/config/manifest.js @@ -0,0 +1 @@ +// Needed for sprockets-rails? diff --git a/config/rails_classes.rb b/config/rails_classes.rb new file mode 100644 index 0000000..e102e18 --- /dev/null +++ b/config/rails_classes.rb @@ -0,0 +1,15 @@ +# To choose what Rails frameworks to load, and skip others: +# NOTE: Be sure this list reflects the same choices made in the gemspec +require 'rails' # NOTE: not 'rails/rails' or 'rails/all' +require 'active_model/railtie' +# require 'active_job/railtie' +require 'active_record/railtie' +# require 'active_storage/engine' +require 'action_controller/railtie' +require 'action_mailer/railtie' +# require 'action_mailbox/engine' +# require 'action_text/engine' +require 'action_view/railtie' +# require 'action_cable/engine' +require 'sprockets/railtie' +require 'rails/test_unit/railtie' diff --git a/lib/rails_db/version.rb b/lib/rails_db/version.rb index 67b48f5..726596c 100755 --- a/lib/rails_db/version.rb +++ b/lib/rails_db/version.rb @@ -1,3 +1,3 @@ module RailsDb - VERSION = "2.4.1" + VERSION = "2.5.0.102" end diff --git a/rails_db.gemspec b/rails_db.gemspec index 7307e28..23d47a7 100755 --- a/rails_db.gemspec +++ b/rails_db.gemspec @@ -15,24 +15,38 @@ Gem::Specification.new do |s| s.files = Dir["{app,config,lib,test}/**/*", "rails_db.gemspec", "Gemfile", "Gemfile.lock", "MIT-LICENSE", "Rakefile", "README.rdoc", "bin/rails_db", "bin/railsdb", "bin/runsql"] s.test_files = Dir["test/**/*"] - s.executables = ["railsdb", "rails_db", 'runsql'] + s.executables = ['railsdb', 'rails_db', 'runsql'] - s.add_dependency 'rails', ">= 5.0.0" - s.add_dependency 'terminal-table' - s.add_dependency 'simple_form', '>= 5.0.1' + # To skip loading all of Rails, adds the minimum gems separately. + # Helps users with similar Rails config to avoid extra dependencies. + # NOTE: Be sure no other dependencies list `rails` as a dependency + # (check Gemfile.lock), or else all of Rails will load anyway. + # NOTE: Must also `require` corresponding Rails component classes in + # * rails_db/config/rails_classes.rb + s.add_dependency 'actionmailer' + s.add_dependency 'actionpack' s.add_dependency 'activerecord' - s.add_dependency 'ransack', '>= 2.3.2' + s.add_dependency 'railties' + s.add_dependency 'rake' + s.add_dependency 'kaminari' + s.add_dependency 'ransack', '>= 2.3.2' + s.add_dependency 'rubyzip', '>= 1.2.1' + s.add_dependency 'simple_form', '>= 5.0.1' + s.add_dependency 'sprockets-rails' + s.add_dependency 'terminal-table' + s.add_dependency 'uglifier' # was in gemfile group :assets - s.add_development_dependency "launchy" - s.add_development_dependency "sqlite3", '~> 1.4' - s.add_development_dependency "mysql2", '<= 0.3.20' - s.add_development_dependency "pg" - s.add_development_dependency "caxlsx_rails" - s.add_development_dependency 'will_paginate', '>= 3.1.0' - s.add_development_dependency 'mime-types', '< 3.0' + s.add_development_dependency 'caxlsx' # Needs to be required also + s.add_development_dependency 'caxlsx_rails' # Needs to be required also + s.add_development_dependency 'launchy' + s.add_development_dependency 'mime-types' #, '< 3.0' + s.add_development_dependency 'mysql2' #, '<= 0.3.20' s.add_development_dependency 'paranoia' + s.add_development_dependency 'pg' #, '>= 1.2.3', '~> 1.2.3' s.add_development_dependency 'pry-rails' + s.add_development_dependency 'sqlite3', '>= 1.4' # '~> 1.4' + s.add_development_dependency 'will_paginate' #, '>= 3.1.0' # s.add_development_dependency 'populator' # s.add_development_dependency 'faker' # s.add_development_dependency 'pry' diff --git a/test/dummy/config/application.rb b/test/dummy/config/application.rb index d321b31..8d676fe 100755 --- a/test/dummy/config/application.rb +++ b/test/dummy/config/application.rb @@ -1,6 +1,10 @@ require File.expand_path('../boot', __FILE__) -require 'rails/all' +# Require only the minimum Rails classes +require_relative '../../../config/rails_classes' + +require 'caxlsx' +require 'caxlsx_rails' Bundler.require(*Rails.groups) diff --git a/test/test_helper.rb b/test/test_helper.rb index 174f9ff..797bbb5 100755 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,7 +9,7 @@ require "rails/test_help" puts "USING DB: #{RailsDb::Database.adapter.adapter_name}" -puts "USING Rails: #{Gem.loaded_specs['rails'].version}" +puts "USING Rails: #{Gem.loaded_specs['activerecord'].version}" # Filter out Minitest backtrace while allowing backtrace from other libraries # to be shown.