Mike McQuaid c5dbd3ca24
Rearrange requires
This improves the load time of most brew commands. For an example of
one of the simplest commands this speeds up:

Without Bootsnap:
```
$ hyperfine 'git checkout master; brew help' 'git checkout optimise_requires; brew help'
Benchmark 1: git checkout master; brew help
  Time (mean ± σ):     525.0 ms ±  35.8 ms    [User: 229.9 ms, System: 113.1 ms]
  Range (min … max):   465.3 ms … 576.6 ms    10 runs

Benchmark 2: git checkout optimise_requires; brew help
  Time (mean ± σ):     383.3 ms ±  25.1 ms    [User: 133.0 ms, System: 72.1 ms]
  Range (min … max):   353.0 ms … 443.6 ms    10 runs

Summary
  git checkout optimise_requires; brew help ran
    1.37 ± 0.13 times faster than git checkout master; brew help
```

With Bootsnap:
```
$ hyperfine 'git checkout master; brew help' 'git checkout optimise_requires; brew help'
Benchmark 1: git checkout master; brew help
  Time (mean ± σ):     386.0 ms ±  30.9 ms    [User: 130.2 ms, System: 93.8 ms]
  Range (min … max):   359.5 ms … 469.3 ms    10 runs

Benchmark 2: git checkout optimise_requires; brew help
  Time (mean ± σ):     330.2 ms ±  32.4 ms    [User: 93.4 ms, System: 73.0 ms]
  Range (min … max):   302.9 ms … 413.9 ms    10 runs

Summary
  git checkout optimise_requires; brew help ran
    1.17 ± 0.15 times faster than git checkout master; brew help
```
2024-07-14 08:49:39 -04:00
..
2024-07-04 12:08:01 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-05-23 00:11:53 +00:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-05-23 17:15:43 +01:00
2024-06-11 02:59:31 +01:00
2024-05-02 09:40:09 +02:00
2024-06-14 12:22:02 +01:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-13 11:43:17 -04:00
2024-05-23 17:15:43 +01:00
2024-07-13 11:43:17 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-13 15:30:21 -04:00
2024-07-14 08:49:39 -04:00
2024-05-01 11:35:21 +02:00
2024-07-14 08:49:39 -04:00
2024-07-04 01:47:13 -04:00
2024-05-01 11:35:21 +02:00
2024-06-11 23:03:53 +01:00
2024-07-14 08:49:39 -04:00
2024-05-02 09:40:09 +02:00
2024-05-01 11:35:21 +02:00
2024-07-14 08:49:39 -04:00
2024-05-23 17:15:43 +01:00
2024-07-14 08:49:39 -04:00
2024-07-10 23:41:18 -07:00
2024-07-14 08:49:39 -04:00
2024-05-01 11:35:21 +02:00
2024-05-01 11:35:21 +02:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-13 11:43:17 -04:00
2024-07-14 08:49:39 -04:00
2024-06-30 02:35:29 -04:00
2024-05-23 17:15:43 +01:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-05-17 14:25:54 +09:00
2024-05-17 12:38:16 +09:00
2024-07-14 08:49:39 -04:00
2024-05-01 11:35:21 +02:00
2024-05-13 08:48:41 -04:00
2024-05-01 11:35:21 +02:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-05-23 17:15:43 +01:00
2024-06-30 23:05:29 -04:00
2024-05-31 15:49:12 -07:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-07-14 08:49:39 -04:00
2024-06-11 23:03:53 +01:00

Homebrew Ruby API

This is the API for Homebrew.

The main class you should look at is the {Formula} class (and classes linked from there). That's the class that's used to create Homebrew formulae (i.e. package descriptions). Assume anything else you stumble upon is private.

You may also find the Formula Cookbook and Ruby Style Guide helpful in creating formulae.

Good luck!