Я предполагаю, что вы на самом деле не используете Object
в качестве имени класса. Если это так, вам просто нужно добавить логику, чтобы установить свои атрибуты в конструкторе:
class Foo
attr_accessor :bar, :baz
def initialize(attrs = {})
attrs.each { |attr,val| instance_variable_set "@#{attr}", val }
end
end
p Foo.new
p Foo.new(:bar => "abc", :baz => 123)
выходы:
#<Foo:0x2ac3d3a890a0>
#<Foo:0x2ac3d3a88e20 @baz=123, @bar="abc">
Обратите внимание, что в реальной жизни вы хотели бы проверить список атрибутов, переданных в конструкторе, чтобы убедиться, что они являются допустимыми атрибутами для вашего класса.