Skip to content

Automate bin/suspenders in development environment without --path #1100

Closed
@thiagoa

Description

Some facts:

  • Suspenders includes itself in the generated application's Gemfile
  • Suspenders generators run in the context of the generated applications
  • Generated applications include Suspenders as a development dependency

Given the last item, if we're running Suspenders in development, we'd end up with two copies of it: the development copy and a gem copy. The problem is that:

  • The development copy will start up Suspenders
  • Generators, since they run in the context of an application, will be picked up from the gem

Therefore, running bin/suspenders in development may put us in a situation where the development copy has changes that the gem copy does not, which means our code changes would not fully apply.

To prevent such a mismatch, the existing solution is to run Suspenders with --path, which inserts a path option in the Gemfile:

gem "suspenders", path: "..."

To activate this behavior, running bin/suspenders with a --path option is necessary:

bin/suspenders myapp --path=$HOME/suspenders

That is not an intuitive solution and may trip up developers working on suspenders, which won't always remember to use --path. What if we could infer when to use a path option in the Gemfile by detecting if we're running in development? We can certainly do that.

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions