So I have this friend which spends a significant amount of time in my place, meaning I end up paying for his food or making him food every time he comes by (he stays for 10-12 hours at a time).
Few weeks ago he had to take his car to the auto shop. He later called me to ask me to give him a  ride from his place to the shop about 10 miles away in order to pick up his car. Even though it was inconvenient for me and I told him that I ended up taking him there. It turned out that he just didn't have their number and thought they would be done, so I drove us to a mall nearby to spend the next hour. About 3 weeks ago he asked me for money to get a monitor so we can play games together. I lent him some money and he promised to pay me back within 2 weeks. To this day I still haven't gotten a single dollat back. 
What really made me do what I did is what happened today. I had to take my car to the shop( mine is a different one, almost 1 mile away from his place) so I asked him to pick me up from the shop and get food or go to best buy (around 1 mile away from my shop) so I didn't have to wait. He said no and asked me to pay him $20 for gas and his time. I was dumbfounded that he said that after all the favors I gave him. 
It was then that I remembered that he had forgotten something he made at my place, now this item is worth about 2 times what he owns me for the monitor ( less than $100) so considering all I've done for him and in a moment of anger I decided to sell it. 

Am I the asshole for this? 