File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# Facets Release History
22
3+ ## 3.2.1 / 2026-06-14
4+
5+ Patch release that fixes the broken 3.2.0 release. 3.2.0 shipped with stale
6+ ` require_relative ` lines pointing at method files that had been removed or
7+ renamed, so ` require 'facets' ` raised ` LoadError ` . This restores loadability
8+ and adds a regression guard so it cannot recur. (The breaking-change and
9+ versioning concern raised in issue #314 is left for a future major release.)
10+
11+ Changes:
12+
13+ * New Features
14+
15+ * Add ` OpenDSL ` — build free-form, pluggable DSL modules from a block.
16+ * Add ` PIC ` — COBOL-style edited-picture pattern matching as a simple
17+ alternative to regular expressions.
18+
19+ * Bug Fixes
20+
21+ * Fix ` LoadError ` on ` require 'facets' ` : remove stale ` require_relative `
22+ lines left pointing at removed method files, and correct the
23+ ` hash/to_proc ` -> ` hash/setter ` require after the rename.
24+ (issues #312 , #315 ; PR #313 )
25+ * Fix ` range.rb ` requiring the removed ` range/overlap ` . (PR #318 )
26+ * Stop ` Kernel::As ` from redefining ` object_id ` , which emitted a
27+ "redefining 'object_id' may cause serious problems" warning on load.
28+ (issue #310 )
29+
30+ * Internal
31+
32+ * Add a load-path regression test that verifies every ` require_relative `
33+ target across the library resolves to an existing file.
34+
335## 3.2.0 / 2026-04-01
436
537Modernization release targeting Ruby 3.1+. Cleans up long-standing
Original file line number Diff line number Diff line change 11Gem ::Specification . new do |s |
22 s . name = 'facets'
3- s . version = '3.2.0 '
3+ s . version = '3.2.1 '
44 s . summary = 'The premier collection of extension methods for Ruby.'
55 s . description = 'Facets is the premier collection of extension methods for the Ruby ' \
66 'programming language. Facets extensions are unique by virtue of their ' \
Original file line number Diff line number Diff line change 4343require_relative 'array/squeeze.rb'
4444require_relative 'array/store.rb'
4545require_relative 'array/thru.rb'
46- require_relative 'array/to_h.rb'
46+ # require_relative 'array/to_h.rb' # removed: now provided by Ruby
4747require_relative 'array/traverse.rb'
4848require_relative 'array/uniq_by.rb'
4949
Original file line number Diff line number Diff line change 11require_relative 'dir/ascend.rb'
22require_relative 'dir/descend.rb'
3- require_relative 'dir/each_child.rb'
3+ # require_relative 'dir/each_child.rb' # removed: now provided by Ruby
44require_relative 'dir/multiglob.rb'
55require_relative 'dir/parent.rb'
66require_relative 'dir/recurse.rb'
Original file line number Diff line number Diff line change 99require_relative 'enumerable/ewise.rb'
1010require_relative 'enumerable/exclude.rb'
1111require_relative 'enumerable/expand.rb'
12- require_relative 'enumerable/filter.rb'
12+ # require_relative 'enumerable/filter.rb' # removed: now provided by Ruby
1313require_relative 'enumerable/find_yield.rb'
1414require_relative 'enumerable/frequency.rb'
1515require_relative 'enumerable/graph.rb'
3131require_relative 'enumerable/purge.rb'
3232require_relative 'enumerable/recursively.rb'
3333require_relative 'enumerable/squeeze.rb'
34- require_relative 'enumerable/sum.rb'
34+ # require_relative 'enumerable/sum.rb' # removed: now provided by Ruby
3535require_relative 'enumerable/value_by'
3636#require_relative 'enumerable/unassociate.rb'
3737require_relative 'enumerable/uniq_by.rb'
Original file line number Diff line number Diff line change 1616require_relative 'kernel/true'
1717
1818### Object
19- require_relative 'object/itself'
19+ # require_relative 'object/itself' # removed: now provided by Ruby
2020
2121### Array
2222require_relative 'array/delete_values'
3737require_relative 'enumerable/value_by'
3838
3939### File
40- require_relative 'file/write'
40+ # require_relative 'file/write' # removed: now provided by Ruby
4141
4242### Hash
4343require_relative 'hash/autonew'
44- require_relative 'hash/compact'
44+ # require_relative 'hash/compact' # removed: now provided by Ruby
4545#require_relative 'hash/data'
4646require_relative 'hash/delete_values'
4747require_relative 'hash/except'
Original file line number Diff line number Diff line change 1111require_relative 'file/sanitize.rb'
1212require_relative 'file/split_all.rb'
1313require_relative 'file/split_root.rb'
14- require_relative 'file/write.rb'
14+ # require_relative 'file/write.rb' # removed: now provided by Ruby
1515require_relative 'file/writelines.rb'
1616
Original file line number Diff line number Diff line change 4040require_relative 'hash/symbolize_keys.rb'
4141require_relative 'hash/to_mod.rb'
4242require_relative 'hash/to_options.rb'
43- require_relative 'hash/to_proc .rb'
43+ require_relative 'hash/setter .rb'
4444require_relative 'hash/to_struct.rb'
4545require_relative 'hash/traverse.rb'
4646require_relative 'hash/update.rb'
Original file line number Diff line number Diff line change @@ -99,8 +99,8 @@ def cache
9999 private :cache
100100 end
101101
102- # Privatize all methods except #binding an operators.
103- private ( *instance_methods . select { |m | m !~ /(^__|^\W |^binding$)/ } )
102+ # Privatize all methods except #binding, #object_id and operators.
103+ private ( *instance_methods . select { |m | m !~ /(^__|^\W |^binding$|^object_id$ )/ } )
104104
105105 def initialize ( subject , ancestor )
106106 @subject = subject
Original file line number Diff line number Diff line change 1- require_relative 'matchdata/match.rb'
1+ # require_relative 'matchdata/match.rb' # removed: now provided by Ruby
22require_relative 'matchdata/matchset.rb'
33
You can’t perform that action at this time.
0 commit comments