Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,10 @@ Changes:
Modernization release targeting Ruby 3.1+. Cleans up long-standing
compatibility issues and incorporates community contributions.

**Note:** This release removed methods and raised the minimum Ruby version
to 3.1, so it should have been released as 4.0.0. Treat the 3.2 series as a
major upgrade from 3.1, and review the Removals below before upgrading.

Changes:

* New Features
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Ruby Facets
Copyright (c) 2005, Thomas Sawyer
Copyright (c) 2004, Thomas Sawyer
All rights reserved.

(BSD-2 LICENSE)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

**More of Ruby, one method at a time.** Facets is a collection of extensions to Ruby's core classes and standard library, plus a few small, reusable classes and modules. Most methods live in their own files, so you can load one extension, a class's extensions, or the core collection.

Facets began in 2005 and is still maintained. The current release is **3.2.2**, which requires **Ruby 3.1 or newer**. See the [release history](HISTORY.md) for changes and migration notes from earlier versions. The `main` branch also contains changes awaiting the next release.
Facets took its name in 2004, growing out of a small methods library started in 2002, and is still maintained. The current release is **3.2.2**, which requires **Ruby 3.1 or newer**. See the [release history](HISTORY.md) for changes and migration notes from earlier versions. The `main` branch also contains changes awaiting the next release.

## Install

Expand Down
2 changes: 1 addition & 1 deletion docs/_src/index.erb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<section class="hero">
<div class="shell hero-grid">
<div class="hero-copy">
<p class="eyebrow"><span class="eyebrow-line"></span> A Ruby library since 2005</p>
<p class="eyebrow"><span class="eyebrow-line"></span> A Ruby library since 2004</p>
<h1>More of Ruby,<br><em>one method</em><br>at a time.</h1>
<p class="hero-lede">A thoughtfully collected set of extensions for Ruby's core classes and standard library. Load the whole core collection or pick just the methods you need.</p>
<div class="hero-actions">
Expand Down
4 changes: 2 additions & 2 deletions docs/_src/news.erb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<section class="page-hero"><div class="shell"><p class="eyebrow"><span class="eyebrow-line"></span> RELEASES & HISTORY</p><h1>A living Ruby<br><em>collection.</em></h1><p>Facets has been growing since 2005. Here are the recent releases and a path back through its story.</p></div></section>
<section class="page-hero"><div class="shell"><p class="eyebrow"><span class="eyebrow-line"></span> RELEASES & HISTORY</p><h1>A living Ruby<br><em>collection.</em></h1><p>Facets has been growing since 2004. Here are the recent releases and a path back through its story.</p></div></section>
<section class="section section-light"><div class="shell"><div class="section-heading narrow"><p class="kicker">LATEST RELEASES</p><h2>Facets 3.2</h2><p>The 3.2 series brings the library forward for Ruby 3.1 and newer. Work merged since 3.2.2 is listed under <a href="https://github.com/rubyworks/facets/blob/main/HISTORY.md#unreleased">Unreleased</a> in the release history.</p></div><div class="timeline">
<article class="timeline-item" id="facets-3-2-2"><div class="timeline-date"><strong>3.2.2</strong><span>15 JUN 2026</span></div><div><p class="tag">LATEST</p><h3>Compatibility, polished</h3><p>Fixes range intersection on Ruby 3.1 and 3.2, restores <code>Range#overlap?</code> where Ruby does not provide it, and corrects <code>Binding#caller_locations</code> argument handling.</p><a class="text-link" href="https://github.com/rubyworks/facets/blob/main/HISTORY.md#322--2026-06-15">Read changes <span aria-hidden="true">↗</span></a></div></article>
<article class="timeline-item" id="facets-3-2-1"><div class="timeline-date"><strong>3.2.1</strong><span>14 JUN 2026</span></div><div><h3>Core loading restored</h3><p>Repairs stale require paths that affected <code>require 'facets'</code> in 3.2.0, and adds a load-path regression check. Also adds OpenDSL and PIC.</p><a class="text-link" href="https://github.com/rubyworks/facets/blob/main/HISTORY.md#321--2026-06-14">Read changes <span aria-hidden="true">↗</span></a></div></article>
<article class="timeline-item" id="facets-3-2-0"><div class="timeline-date"><strong>3.2.0</strong><span>APR 2026</span></div><div><h3>Modern Ruby foundation</h3><p>Moves the minimum Ruby version to 3.1, adds methods such as <code>Array#to_ranges</code> and <code>String#dashcase</code>, and retires extensions now built into Ruby.</p><a class="text-link" href="https://github.com/rubyworks/facets/blob/main/HISTORY.md#320--2026-04-01">Read migration notes <span aria-hidden="true">↗</span></a></div></article>
</div></div></section>
<section class="section section-cream"><div class="shell archive-grid"><div><p class="kicker">FROM THE ARCHIVE</p><h2>Twenty years<br><em>of ideas.</em></h2><p>These posts are preserved as published. Their install advice and API links describe older Facets releases; use the current guide for 3.x.</p></div><div class="archive-list"><a href="posts/2010-09-01-release-2-9.html"><span>2010</span> Facets 2.9 release <b aria-hidden="true">↗</b></a><a href="posts/2009-11-09-release-2-8.html"><span>2009</span> Facets 2.8 release <b aria-hidden="true">↗</b></a><a href="posts/2009-08-22-release-2-7.html"><span>2009</span> Facets 2.7 release <b aria-hidden="true">↗</b></a><a href="posts/2009-07-21-new-website.html"><span>2009</span> A new website <b aria-hidden="true">↗</b></a><a href="posts/2008-01-01-how-facets-was-born.html"><span>2008</span> How Facets was born <b aria-hidden="true">↗</b></a></div></div></section>
<section class="section section-cream"><div class="shell archive-grid"><div><p class="kicker">FROM THE ARCHIVE</p><h2>Over twenty years<br><em>of ideas.</em></h2><p>Facets grew out of TomsLib, a handful of useful methods started in July 2002. It was renamed Succ (2003), A.B.C. (2004) and Raspberry (2004) before becoming Ruby Facets in December 2004, with 1.0 following a year later.</p><p>These posts are preserved as published. Their install advice and API links describe older Facets releases; use the current guide for 3.x.</p></div><div class="archive-list"><a href="posts/2010-09-01-release-2-9.html"><span>2010</span> Facets 2.9 release <b aria-hidden="true">↗</b></a><a href="posts/2009-11-09-release-2-8.html"><span>2009</span> Facets 2.8 release <b aria-hidden="true">↗</b></a><a href="posts/2009-08-22-release-2-7.html"><span>2009</span> Facets 2.7 release <b aria-hidden="true">↗</b></a><a href="posts/2009-07-21-new-website.html"><span>2009</span> A new website <b aria-hidden="true">↗</b></a><a href="posts/2008-03-24-release-2-4.html"><span>2008</span> Facets 2.4 release <b aria-hidden="true">↗</b></a><a href="posts/2008-01-01-how-facets-was-born.html"><span>2008</span> How Facets was born <b aria-hidden="true">↗</b></a></div></div></section>
2 changes: 1 addition & 1 deletion docs/_src/source.erb
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
cd facets
bundle install
bundle exec rake test</code></pre></div></div></section>
<section class="section source-credit"><div class="shell credit-grid"><p class="kicker kicker-light">PEOPLE & LICENSE</p><div><h2>Built together.</h2><p>Thomas Sawyer began Facets in 2005. Many contributors have shaped its methods, tests, and documentation since then. Credits for individual pieces appear in the source, and the collection is distributed under the BSD 2-Clause License.</p><a class="button button-light" href="https://github.com/rubyworks/facets/blob/main/LICENSE.txt">Read the license <span aria-hidden="true">↗</span></a></div></div></section>
<section class="section source-credit"><div class="shell credit-grid"><p class="kicker kicker-light">PEOPLE & LICENSE</p><div><h2>Built together.</h2><p>Thomas Sawyer began Facets in 2004, building on a methods library he started in 2002. Many contributors have shaped its methods, tests, and documentation since then. Credits for individual pieces appear in the source, and the collection is distributed under the BSD 2-Clause License.</p><a class="button button-light" href="https://github.com/rubyworks/facets/blob/main/LICENSE.txt">Read the license <span aria-hidden="true">↗</span></a></div></div></section>
3 changes: 3 additions & 0 deletions docs/build.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
# in _src. Run from anywhere with: ruby docs/build.rb
require 'erb'

# The templates contain non-ASCII characters; don't depend on the locale.
Encoding.default_external = Encoding::UTF_8

site_dir = __dir__
source_dir = File.join(site_dir, '_src')
layout = ERB.new(File.read(File.join(source_dir, 'layout.erb')), trim_mode: '-')
Expand Down
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<main id="main"><section class="hero">
<div class="shell hero-grid">
<div class="hero-copy">
<p class="eyebrow"><span class="eyebrow-line"></span> A Ruby library since 2005</p>
<p class="eyebrow"><span class="eyebrow-line"></span> A Ruby library since 2004</p>
<h1>More of Ruby,<br><em>one method</em><br>at a time.</h1>
<p class="hero-lede">A thoughtfully collected set of extensions for Ruby's core classes and standard library. Load the whole core collection or pick just the methods you need.</p>
<div class="hero-actions">
Expand Down
4 changes: 2 additions & 2 deletions docs/news.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
</div>
</header>

<main id="main"><section class="page-hero"><div class="shell"><p class="eyebrow"><span class="eyebrow-line"></span> RELEASES & HISTORY</p><h1>A living Ruby<br><em>collection.</em></h1><p>Facets has been growing since 2005. Here are the recent releases and a path back through its story.</p></div></section>
<main id="main"><section class="page-hero"><div class="shell"><p class="eyebrow"><span class="eyebrow-line"></span> RELEASES & HISTORY</p><h1>A living Ruby<br><em>collection.</em></h1><p>Facets has been growing since 2004. Here are the recent releases and a path back through its story.</p></div></section>
<section class="section section-light"><div class="shell"><div class="section-heading narrow"><p class="kicker">LATEST RELEASES</p><h2>Facets 3.2</h2><p>The 3.2 series brings the library forward for Ruby 3.1 and newer. Work merged since 3.2.2 is listed under <a href="https://github.com/rubyworks/facets/blob/main/HISTORY.md#unreleased">Unreleased</a> in the release history.</p></div><div class="timeline">
<article class="timeline-item" id="facets-3-2-2"><div class="timeline-date"><strong>3.2.2</strong><span>15 JUN 2026</span></div><div><p class="tag">LATEST</p><h3>Compatibility, polished</h3><p>Fixes range intersection on Ruby 3.1 and 3.2, restores <code>Range#overlap?</code> where Ruby does not provide it, and corrects <code>Binding#caller_locations</code> argument handling.</p><a class="text-link" href="https://github.com/rubyworks/facets/blob/main/HISTORY.md#322--2026-06-15">Read changes <span aria-hidden="true">↗</span></a></div></article>
<article class="timeline-item" id="facets-3-2-1"><div class="timeline-date"><strong>3.2.1</strong><span>14 JUN 2026</span></div><div><h3>Core loading restored</h3><p>Repairs stale require paths that affected <code>require 'facets'</code> in 3.2.0, and adds a load-path regression check. Also adds OpenDSL and PIC.</p><a class="text-link" href="https://github.com/rubyworks/facets/blob/main/HISTORY.md#321--2026-06-14">Read changes <span aria-hidden="true">↗</span></a></div></article>
<article class="timeline-item" id="facets-3-2-0"><div class="timeline-date"><strong>3.2.0</strong><span>APR 2026</span></div><div><h3>Modern Ruby foundation</h3><p>Moves the minimum Ruby version to 3.1, adds methods such as <code>Array#to_ranges</code> and <code>String#dashcase</code>, and retires extensions now built into Ruby.</p><a class="text-link" href="https://github.com/rubyworks/facets/blob/main/HISTORY.md#320--2026-04-01">Read migration notes <span aria-hidden="true">↗</span></a></div></article>
</div></div></section>
<section class="section section-cream"><div class="shell archive-grid"><div><p class="kicker">FROM THE ARCHIVE</p><h2>Twenty years<br><em>of ideas.</em></h2><p>These posts are preserved as published. Their install advice and API links describe older Facets releases; use the current guide for 3.x.</p></div><div class="archive-list"><a href="posts/2010-09-01-release-2-9.html"><span>2010</span> Facets 2.9 release <b aria-hidden="true">↗</b></a><a href="posts/2009-11-09-release-2-8.html"><span>2009</span> Facets 2.8 release <b aria-hidden="true">↗</b></a><a href="posts/2009-08-22-release-2-7.html"><span>2009</span> Facets 2.7 release <b aria-hidden="true">↗</b></a><a href="posts/2009-07-21-new-website.html"><span>2009</span> A new website <b aria-hidden="true">↗</b></a><a href="posts/2008-01-01-how-facets-was-born.html"><span>2008</span> How Facets was born <b aria-hidden="true">↗</b></a></div></div></section>
<section class="section section-cream"><div class="shell archive-grid"><div><p class="kicker">FROM THE ARCHIVE</p><h2>Over twenty years<br><em>of ideas.</em></h2><p>Facets grew out of TomsLib, a handful of useful methods started in July 2002. It was renamed Succ (2003), A.B.C. (2004) and Raspberry (2004) before becoming Ruby Facets in December 2004, with 1.0 following a year later.</p><p>These posts are preserved as published. Their install advice and API links describe older Facets releases; use the current guide for 3.x.</p></div><div class="archive-list"><a href="posts/2010-09-01-release-2-9.html"><span>2010</span> Facets 2.9 release <b aria-hidden="true">↗</b></a><a href="posts/2009-11-09-release-2-8.html"><span>2009</span> Facets 2.8 release <b aria-hidden="true">↗</b></a><a href="posts/2009-08-22-release-2-7.html"><span>2009</span> Facets 2.7 release <b aria-hidden="true">↗</b></a><a href="posts/2009-07-21-new-website.html"><span>2009</span> A new website <b aria-hidden="true">↗</b></a><a href="posts/2008-03-24-release-2-4.html"><span>2008</span> Facets 2.4 release <b aria-hidden="true">↗</b></a><a href="posts/2008-01-01-how-facets-was-born.html"><span>2008</span> How Facets was born <b aria-hidden="true">↗</b></a></div></div></section>
</main>

<footer class="site-footer">
Expand Down
2 changes: 1 addition & 1 deletion docs/source.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
cd facets
bundle install
bundle exec rake test</code></pre></div></div></section>
<section class="section source-credit"><div class="shell credit-grid"><p class="kicker kicker-light">PEOPLE & LICENSE</p><div><h2>Built together.</h2><p>Thomas Sawyer began Facets in 2005. Many contributors have shaped its methods, tests, and documentation since then. Credits for individual pieces appear in the source, and the collection is distributed under the BSD 2-Clause License.</p><a class="button button-light" href="https://github.com/rubyworks/facets/blob/main/LICENSE.txt">Read the license <span aria-hidden="true">↗</span></a></div></div></section>
<section class="section source-credit"><div class="shell credit-grid"><p class="kicker kicker-light">PEOPLE & LICENSE</p><div><h2>Built together.</h2><p>Thomas Sawyer began Facets in 2004, building on a methods library he started in 2002. Many contributors have shaped its methods, tests, and documentation since then. Credits for individual pieces appear in the source, and the collection is distributed under the BSD 2-Clause License.</p><a class="button button-light" href="https://github.com/rubyworks/facets/blob/main/LICENSE.txt">Read the license <span aria-hidden="true">↗</span></a></div></div></section>
</main>

<footer class="site-footer">
Expand Down
Loading