Если я понял, также как указал Андреас Мюллер, возможно, метод automatic
, приведенный ниже, это то, что вы ищете:
class Whathever
attr_accessor :test_id, :test_time, :test_type, :city
def initialize(*args)
@test_id, @test_time, @test_type, @city = args
end
def manual
{
test_id: @test_id,
test_time: @test_time,
test_type: @test_type,
city: @city
}
end
def automatic
self.instance_variables.each_with_object({}) { |v, h| h[v[1..-1].to_sym] = instance_variable_get(v) }
end
end
whathever = Whathever.new('ID', 'TIME', 'TYPE', 'CITY')
whathever.manual
whathever.automatic
#=> {:test_id=>"ID", :test_time=>"TIME", :test_type=>"TYPE", :city=>"CITY"}