k0kubun / hamlit

High Performance Haml Implementation
https://rubygems.org/gems/hamlit
Other
980 stars 60 forks source link

Ensure the initializer is called before the application's initializers #176

Closed sunny closed 3 years ago

sunny commented 3 years ago

In order not to have to require 'hamlit/rails_template', make sure it is called beforehand.

Minor documentation fix that I needed to use RailsTemplate in an initializer. (hamlit 2.14.2, hamlit-rails 0.2.3, rails 6.0, Ruby 2.5.7.)

k0kubun commented 3 years ago

Oh, interesting. Do you think Rails initializers registered by gems like https://github.com/k0kubun/hamlit/blob/df0af702cec7fb3bdb6ee42e10e5639bac95e102/lib/hamlit/railtie.rb#L7 are executed after application-provided initializers? (I'm just not sure)

sunny commented 3 years ago

I’m not sure how the order is determined, but in my case adding puts __FILE__ inside initializer :hamlit do |app| (in Hamlit's railtie) as well as inside my initializer, I get the following:

$ bin/rails runner 'puts "Done"'
/Users/sunny/code/cults/config/initializers/hamlit.rb
/Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/hamlit-2.14.2/lib/hamlit/railtie.rb
Running via Spring preloader in process 77342
Done
k0kubun commented 3 years ago

Hmm, I've just rails new-ed and got a different result

$ bin/rails -v
Rails 6.0.3.4

$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]

$ bin/rails runner 'puts "Done"'
/home/k0kubun/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/hamlit-2.14.2/lib/hamlit/railtie.rb
/home/k0kubun/tmp/railsapp/config/initializers/hamlit.rb
Done
k0kubun commented 3 years ago

Could you put this code in each your file file?

puts "[#{__FILE__}]"
puts caller
puts

Also I'd like to check if you have Bundler.require(*Rails.groups) in config/application.rb, require_relative 'application' in config/environment.rb, and Rails.application.initialize! next to it in config/environment.rb.

Please confirm whether Hamlit::Railtie is defined in your config/initializers/hamlit.rb or not too.

sunny commented 3 years ago

Could you put this code in each your file file?

I've added it twice to hamlit's `railtie.rb` (railtie root and railtie initializer) ```rb # frozen_string_literal: true require 'rails' puts "(railtie root)" puts "[#{__FILE__}]" puts caller puts module Hamlit class Railtie < ::Rails::Railtie initializer :hamlit do |app| puts "(railtie initializer)" puts "[#{__FILE__}]" puts caller puts require 'hamlit/rails_template' end end end ```
and to my app's initializer ```rb # frozen_string_literal: true puts "(app initializer)" puts "[#{__FILE__}]" puts caller puts p Hamlit::Railtie puts require "hamlit/rails_template" Hamlit::RailsTemplate.set_options attr_quote: '"' ```
and it calls in order : 1. railtie root, 2. app initializer, 3. railtie initializer ```sh $ spring stop Spring stopped. $ bin/rails runner 'puts "Done"' (railtie root) [/Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/hamlit-2.14.2/lib/hamlit/railtie.rb] /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `block in require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:291:in `load_dependency' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/hamlit-2.14.2/lib/hamlit.rb:10:in `' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `block in require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:291:in `load_dependency' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/hamlit-rails-0.2.3/lib/hamlit-rails.rb:3:in `' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:66:in `block (2 levels) in require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:61:in `each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:61:in `block in require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:50:in `each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:50:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/bundler.rb:173:in `require' /Users/sunny/code/cults/config/application.rb:11:in `' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:92:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:92:in `preload' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:157:in `serve' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:145:in `block in run' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:139:in `loop' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:139:in `run' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application/boot.rb:19:in `' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:85:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:85:in `require' -e:1:in `
' (app initializer) [/Users/sunny/code/cults/config/initializers/hamlit.rb] /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:318:in `block in load' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:291:in `load_dependency' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:318:in `load' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/engine.rb:666:in `block in load_config_initializer' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/notifications.rb:182:in `instrument' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/engine.rb:665:in `load_config_initializer' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/engine.rb:625:in `block (2 levels) in ' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/engine.rb:624:in `each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/engine.rb:624:in `block in ' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:32:in `instance_exec' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:32:in `run' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:61:in `block in run_initializers' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:228:in `block in tsort_each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:431:in `each_strongly_connected_component_from' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:421:in `block in each_strongly_connected_component_from' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:50:in `each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:50:in `tsort_each_child' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:415:in `call' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:415:in `each_strongly_connected_component_from' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:349:in `block in each_strongly_connected_component' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:347:in `each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:347:in `call' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:347:in `each_strongly_connected_component' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:226:in `tsort_each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:205:in `tsort_each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:60:in `run_initializers' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/application.rb:363:in `initialize!' /Users/sunny/code/cults/config/environment.rb:7:in `' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `block in require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:291:in `load_dependency' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:106:in `preload' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:157:in `serve' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:145:in `block in run' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:139:in `loop' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:139:in `run' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application/boot.rb:19:in `' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:85:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:85:in `require' -e:1:in `
' Hamlit::Railtie (railtie initializer) [/Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/hamlit-2.14.2/lib/hamlit/railtie.rb] /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:32:in `instance_exec' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:32:in `run' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:61:in `block in run_initializers' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:228:in `block in tsort_each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:431:in `each_strongly_connected_component_from' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:349:in `block in each_strongly_connected_component' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:347:in `each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:347:in `call' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:347:in `each_strongly_connected_component' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:226:in `tsort_each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/2.5.0/tsort.rb:205:in `tsort_each' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/initializable.rb:60:in `run_initializers' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/railties-6.0.3.4/lib/rails/application.rb:363:in `initialize!' /Users/sunny/code/cults/config/environment.rb:7:in `' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `block in require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:291:in `load_dependency' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:106:in `preload' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:157:in `serve' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:145:in `block in run' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:139:in `loop' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application.rb:139:in `run' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/spring-2.1.1/lib/spring/application/boot.rb:19:in `' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:85:in `require' /Users/sunny/.rbenv/versions/2.5.7/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:85:in `require' -e:1:in `
' Running via Spring preloader in process 80525 Done ```

Also I'd like to check if you have Bundler.require(*Rails.groups) in config/application.rb

✅ It's there. ```rb # frozen_string_literal: true require_relative "boot" require "rails/all" ActiveSupport::Deprecation.debug = ENV["DEBUG"] == "true" # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. Bundler.require(*Rails.groups) # … ```

require_relative 'application' in config/environment.rb and Rails.application.initialize! next to it in config/environment.rb.

✅ Both there ```rb # frozen_string_literal: true # Load the Rails application. require_relative "application" # Initialize the Rails application. Rails.application.initialize! ```

Please confirm whether Hamlit::Railtie is defined in your config/initializers/hamlit.rb or not too.

✅ Yep, it is defined there.

sunny commented 3 years ago

Oh, I think this brings us to a lead. The previous gem in my Gemfile is reform-rails and its railtie is defined as being after: :load_config_initializers. Perhaps therefore that is why hamlit is moved to after the config initializers as well, since it simply follows having no before or after.

sunny commented 3 years ago

Instead of a documentation change this is now a better fix and I learned a thing or two about initializers in Rails 🎉

k0kubun commented 3 years ago

Oh, I think this brings us to a lead. The previous gem in my Gemfile is reform-rails and its railtie is defined as being after: :load_config_initializers. Perhaps therefore that is why hamlit is moved to after the config initializers as well, since it simply follows having no before or after.

Interesting! https://github.com/rails/rails/blob/v6.0.0/railties/lib/rails/initializable.rb#L90

Your patch makes sense. Thank you!