Skip to content

marcoroth/conventional_extensions-repro

Repository files navigation

conventional_extensions-repro

Versions

conventional_extensions Version: 0.3.0

Ruby Version: 3.1.2

Rails Version: 7.0.4

Relevant Files

Reproducion Steps

bundle install
rails db:create db:migrate 
rails c
Loading development environment (Rails 7.0.4)
irb(main):001:0> Post.new.mailroom
/Users/marcoroth/.anyenv/envs/rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/conventional_extensions-0.3.0/lib/conventional_extensions.rb:15:in `load_extensions': private method `load' called for nil:NilClass (NoMethodError)

    @loader.load(*extensions)
           ^^^^^

Possible fix?

This seems to fix it locally, but honestly I haven't fully grokked why @loader wouldn't need to be defined in some cases. This "fix" possibly also has some unwanted side-effects since @loader is not going to be cleaned up in the ensure block because of the loader_defined_before_entrance condition.

  def load_extensions(*extensions, from: Frame.previous.path)
-   @loader = Loader.new(self, from) unless loader_defined_before_entrance = defined?(@loader)
+   loader_defined_before_entrance = defined?(@loader)
+   @loader = Loader.new(self, from) unless loader_defined_before_entrance
+   @loader = Loader.new(self, from) if @loader.nil
    @loader.load(*extensions)
  ensure
    @loader = nil unless loader_defined_before_entrance
  end

Am I even supposed to use load_exentions inside a model class under app/models/?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published