class RoomCreator
  attr_reader :owner, :room_name, :room

  def initialize(options)
    options.each do |k, v|
      instance_variable_set "@#{k}", v
    end
  end

  def call!
    ActiveRecord::Base.transaction do
      @room = Room.create! name: room_name, owner: owner
      Membership.create!(user: owner, room: room)
    end

    room
  end
end

class RoomCreator
  attr_reader :owner, :name, :room

  def initialize(options)
    options.each do |k, v|
      instance_variable_set "@#{k}", v
    end
  end

  def call
    @room = Room.create name: name, owner: owner
    room.persisted? && Membership.create(user: owner, room: room)

    room
  end
end

Change RoomCreator service to be more friendly to Room interface
Change RoomCreator service to be more friendly to Room interface
