Simply call self.new
(self
references the class itself in the class method):
class A
def self.instantiate params
self.new
# OR simply `new`
end
end
class B < A; end
b = B.instantiate 123
b.class
# => B
class C < A; end
c = C.instantiate 123
c.class
# => C
class D < A; end
d = D.instantiate 123
d.class
# => D
UPDATE
As Cary Swoveland commented, you can omit self.
:
def self.instantiate params
new
end