A woman who was allegedly raped by a teenager while he was out of jail on bond is speaking about the attack.

She told Channel 2 Action News she was jogging last week when someone knocked her out and raped her for about 20 minutes. AJC.com does not identify victims of sexual assault unless they choose to identify themselves, which she did not.

“I’m still in shock,” she said. “It was just a vicious attack, and I think he would’ve killed me eventually. I probably had a few more minutes left in me.”

About 9 a.m. Thursday, two days after 17-year-old D’Shawn Garrison bonded out of the Fulton County Jail on a theft charge, authorities say the teen raped the 54-year-old woman along Abner Place in northwest Atlanta.

RELATED: Police: Atlanta teen raped woman days after bonding out on theft charge

D’Shawn Garrison

Credit: Fulton County Sheriff's Office

icon to expand image

Credit: Fulton County Sheriff's Office

The woman told Channel 2 the attack came out of nowhere and was something she never expected to happen, especially early in the morning.

“He grabbed me by the hair, and I bent over, and that’s when he started punching me,” she said. “He punched me many times. He knocked me out a few times, and then he choked me a number of times.”

She told the news station she was then sexually assaulted for about 20 minutes before a good Samaritan saw what was happening and came to her rescue. Her hero, as she called him, was Jamal Wheeler.

“He saved my life,” she said. “He says he’s not a hero, but he actually saved my life.”

Wheeler told Channel 2 Garrison tried to escape on a scooter when he ran over to stop the sexual assault.

“He tried to run to the scooter, and that’s when the victim — she grabbed the back of the scooter,” Wheeler told Channel 2. “He was literally getting on the scooter and I had to grab him, so he wouldn’t get anywhere.”

Garrison was charged with rape, aggravated assault by strangulation, battery that caused substantial physical harm and interference with government property, jail records show. This time he was denied bond.

On May 5, officers spotted Garrison in a car that had been stolen at gunpoint in Forest Park the previous night, according to an Atlanta police incident report obtained by AJC.com. He was arrested after a brief chase near Baker Road on a charge of theft by receiving stolen property.

At the time, Garrison was wearing an ankle monitor as a condition of a bond he received after an armed robbery arrest when he was 14, Channel 2 reported. Before he was booked May 5, he briefly escaped custody, only to turn himself in a few hours later, police said. The alleged escape resulted in an additional charge of escaping custody.

Garrison was released from jail May 7, two days before the jogger was attacked, on a $17,500 signature bond, according to jail records.

District Attorney Paul Howard said Garrison never should have received bond because he had 13 prior arrests.

“For some unknown reason ... neither the District Attorney, the Magistrate Judge, nor the Pre-Trial Release Division had possession of Garrison’s juvenile record at the time of the hearing,” Howard said in a statement to Channel 2. “Garrison was not wearing the ankle monitor at the time of the hearing and stood before the Magistrate Judge with his mother in tow. No mention was made of his previous record which led to his release, by signature bond, to his mother.”

Additionally, Howard’s statement said his office would indict the teen within 30 days and make sure he remains in custody until his case is heard.