Skip to content

Commit 824fc71

Browse files
authored
Merge pull request #339 from rubyworks/claude/github-connector-capabilities-4qcre6
Document the cost of require 'facets'.
2 parents 9e4fad4 + a2634ec commit 824fc71

3 files changed

Lines changed: 3 additions & 3 deletions

File tree

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ require 'facets'
5050
#=> 2.0
5151
```
5252

53-
`require 'facets'` loads the broadly useful **core** extensions. Some specialized core extensions are opt-in; require their method file directly. To load Facets extensions to a Ruby standard library, require that library through Facets:
53+
`require 'facets'` loads the broadly useful **core** extensions: roughly 860 methods from 448 files, adding about 35 ms of load time and 2 MB of memory (Ruby 3.3, Linux). Some specialized core extensions are opt-in; require their method file directly. To load Facets extensions to a Ruby standard library, require that library through Facets:
5454

5555
```ruby
5656
require 'facets/ostruct'

‎docs/_src/learn.erb‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ require 'facets/array/to_ranges'
88
require 'facets/string'
99

1010
<span class="code-comment"># Most core extensions</span>
11-
require 'facets'</code></pre></div><p>Standard library extensions are separate from the core collection. Require each one explicitly. For example, <code>require 'facets/ostruct'</code> loads Ruby's <code>ostruct</code> and the Facets additions for it.</p><div class="callout"><strong>Using Ruby 3.5+?</strong> Add the <code>ostruct</code> gem separately if you use Facets' OpenStruct extensions. Ruby no longer includes it as a default gem.</div></section>
11+
require 'facets'</code></pre></div><p>The core collection is light. <code>require 'facets'</code> adds about 35&nbsp;ms of load time and 2&nbsp;MB of memory, loading roughly 860 methods from 448 small files. That covers the core library only; standard library extensions load only when you require them. (Measured with Ruby 3.3 on Linux; your numbers will vary.)</p><p>Standard library extensions are separate from the core collection. Require each one explicitly. For example, <code>require 'facets/ostruct'</code> loads Ruby's <code>ostruct</code> and the Facets additions for it.</p><div class="callout"><strong>Using Ruby 3.5+?</strong> Add the <code>ostruct</code> gem separately if you use Facets' OpenStruct extensions. Ruby no longer includes it as a default gem.</div></section>
1212
<section id="examples" class="guide-block"><p class="kicker">03 / SEE IT WORK</p><h2>A few useful facets</h2><p>These examples use methods present in the 3.2 release.</p><div class="snippet"><div class="snippet-label">RUBY</div><pre><code>require 'facets/array/to_ranges'
1313
[1, 2, 3, 6, 7].to_ranges
1414
<span class="code-comment">#=&gt; [1..3, 6..7]</span>

‎docs/learn.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
require 'facets/string'
3636

3737
<span class="code-comment"># Most core extensions</span>
38-
require 'facets'</code></pre></div><p>Standard library extensions are separate from the core collection. Require each one explicitly. For example, <code>require 'facets/ostruct'</code> loads Ruby's <code>ostruct</code> and the Facets additions for it.</p><div class="callout"><strong>Using Ruby 3.5+?</strong> Add the <code>ostruct</code> gem separately if you use Facets' OpenStruct extensions. Ruby no longer includes it as a default gem.</div></section>
38+
require 'facets'</code></pre></div><p>The core collection is light. <code>require 'facets'</code> adds about 35&nbsp;ms of load time and 2&nbsp;MB of memory, loading roughly 860 methods from 448 small files. That covers the core library only; standard library extensions load only when you require them. (Measured with Ruby 3.3 on Linux; your numbers will vary.)</p><p>Standard library extensions are separate from the core collection. Require each one explicitly. For example, <code>require 'facets/ostruct'</code> loads Ruby's <code>ostruct</code> and the Facets additions for it.</p><div class="callout"><strong>Using Ruby 3.5+?</strong> Add the <code>ostruct</code> gem separately if you use Facets' OpenStruct extensions. Ruby no longer includes it as a default gem.</div></section>
3939
<section id="examples" class="guide-block"><p class="kicker">03 / SEE IT WORK</p><h2>A few useful facets</h2><p>These examples use methods present in the 3.2 release.</p><div class="snippet"><div class="snippet-label">RUBY</div><pre><code>require 'facets/array/to_ranges'
4040
[1, 2, 3, 6, 7].to_ranges
4141
<span class="code-comment">#=&gt; [1..3, 6..7]</span>

0 commit comments

Comments
 (0)