Skip to content

Commit

Permalink
Revert "Make Rails app detection based on Rails::Application supercla…
Browse files Browse the repository at this point in the history
…ss (#2218)"

This reverts commit 392d1aa.
  • Loading branch information
vinistock authored Aug 20, 2024
1 parent 88b85b8 commit ebe59fb
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 25 deletions.
19 changes: 4 additions & 15 deletions lib/ruby_lsp/setup_bundler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ def initialize(project_path, **options)
@last_updated_path = T.let(@custom_dir + "last_updated", Pathname)

@dependencies = T.let(load_dependencies, T::Hash[String, T.untyped])
@rails_app = T.let(rails_app?, T::Boolean)
@retry = T.let(false, T::Boolean)
end

Expand All @@ -63,7 +62,7 @@ def setup!
# Do not set up a custom bundle if LSP dependencies are already in the Gemfile
if @dependencies["ruby-lsp"] &&
@dependencies["debug"] &&
(@rails_app ? @dependencies["ruby-lsp-rails"] : true)
(@dependencies["rails"] ? @dependencies["ruby-lsp-rails"] : true)
$stderr.puts(
"Ruby LSP> Skipping custom bundle setup since LSP dependencies are already in #{@gemfile}",
)
Expand Down Expand Up @@ -149,7 +148,7 @@ def write_custom_gemfile
parts << 'gem "debug", require: false, group: :development, platforms: :mri'
end

if @rails_app && !@dependencies["ruby-lsp-rails"]
if @dependencies["rails"] && !@dependencies["ruby-lsp-rails"]
parts << 'gem "ruby-lsp-rails", require: false, group: :development'
end

Expand Down Expand Up @@ -210,7 +209,7 @@ def run_bundle_install(bundle_gemfile = @gemfile)
command << " && bundle update "
command << "ruby-lsp " unless @dependencies["ruby-lsp"]
command << "debug " unless @dependencies["debug"]
command << "ruby-lsp-rails " if @rails_app && !@dependencies["ruby-lsp-rails"]
command << "ruby-lsp-rails " if @dependencies["rails"] && !@dependencies["ruby-lsp-rails"]
command << "--pre" if @experimental
command.delete_suffix!(" ")
command << ")"
Expand Down Expand Up @@ -245,7 +244,7 @@ def run_bundle_install(bundle_gemfile = @gemfile)
def should_bundle_update?
# If `ruby-lsp`, `ruby-lsp-rails` and `debug` are in the Gemfile, then we shouldn't try to upgrade them or else it
# will produce version control changes
if @rails_app
if @dependencies["rails"]
return false if @dependencies.values_at("ruby-lsp", "ruby-lsp-rails", "debug").all?

# If the custom lockfile doesn't include `ruby-lsp`, `ruby-lsp-rails` or `debug`, we need to run bundle install
Expand Down Expand Up @@ -281,15 +280,5 @@ def correct_relative_remote_paths

@custom_lockfile.write(content)
end

# Detects if the project is a Rails app by looking if the superclass of the main class is `Rails::Application`
sig { returns(T::Boolean) }
def rails_app?
config = Pathname.new("config/application.rb").expand_path
application_contents = config.read if config.exist?
return false unless application_contents

/class .* < (::)?Rails::Application/.match?(application_contents)
end
end
end
4 changes: 0 additions & 4 deletions test/fixtures/rails_application.rb

This file was deleted.

6 changes: 0 additions & 6 deletions test/setup_bundler_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,6 @@ def test_creates_custom_bundle_for_a_rails_app
bundle_env(".ruby-lsp/Gemfile"),
"(bundle check || bundle install) 1>&2",
).returns(true)

FileUtils.mkdir("config")
FileUtils.cp("test/fixtures/rails_application.rb", "config/application.rb")
Bundler::LockfileParser.any_instance.expects(:dependencies).returns({ "rails" => true }).at_least_once
run_script

Expand All @@ -94,7 +91,6 @@ def test_creates_custom_bundle_for_a_rails_app
assert_match("ruby-lsp-rails", File.read(".ruby-lsp/Gemfile"))
ensure
FileUtils.rm_r(".ruby-lsp") if Dir.exist?(".ruby-lsp")
FileUtils.rm_r("config") if Dir.exist?("config")
end

def test_changing_lockfile_causes_custom_bundle_to_be_rebuilt
Expand Down Expand Up @@ -484,8 +480,6 @@ def test_ensures_lockfile_remotes_are_relative_to_default_gemfile

def test_ruby_lsp_rails_is_automatically_included_in_rails_apps
Dir.mktmpdir do |dir|
FileUtils.mkdir("#{dir}/config")
FileUtils.cp("test/fixtures/rails_application.rb", "#{dir}/config/application.rb")
Dir.chdir(dir) do
File.write(File.join(dir, "Gemfile"), <<~GEMFILE)
source "https://rubygems.org"
Expand Down

0 comments on commit ebe59fb

Please sign in to comment.