transfigure

An experimental Ruby native extension that allows changing an object's class at runtime.

Installation

gem install transfigure

Usage

require 'transfigure'

The transfigure gem adds the transfigure_into! method onto Ruby's Object class. Pass it another class to switch out the object's current class to another one:

class Foo
end

class Bar
end

obj = Foo.new
obj.is_a?(Foo) # => true
obj.transfigure_into!(Bar)
obj.is_a?(Foo) # => false
obj.is_a?(Bar) # => true

Requirements

The code has only been tested on MRI (cruby) 3.1 and will definitely not work on other Ruby engines like JRuby or TruffleRuby.

Running Tests

bundle exec rspec

Authors