Skip to content

Remove most global "monkey-patches" #17471

Open
@MikeMcQuaid

Description

@MikeMcQuaid

Verification

Provide a detailed description of the proposed feature

We should clean up extend/ to remove most monkey-patches (i.e. overriding/adding existing functionality) from core Ruby classes like e.g. String, Pathname, etc.

The exceptions should be:

  • those that mirror ActiveSupport e.g. present?, blank?, etc.
  • those that are extremely widely used (such as the above)

For monkey-patches used in formulae and/or casks: we should instead have modules included in e.g. Formula/Cask or refinements on e.g. Pathname so that they can be used as custom DSLs when possible rather than globally overriding methods.

What is the motivation for the feature?

  • More vanilla Ruby usage.
  • More clarify about when we're overriding functionality.

How will the feature be relevant to at least 90% of Homebrew users?

It won't be.

What alternatives to the feature have been considered?

Doing nothing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featuresNew featureshelp wantedWe want help addressing this

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions