It's truly bizarre that there exists no full modern exposition of this theorem, as noted elsewhere. Anyway, I thought I'd poke through and see if I could get the gist of how it works as somebody who has familiarity with categorical techniques, if not abelian techniques.
Here's how it goes, following Swan and wikipedia. We have a small abelian category $\mathcal{A}$, and we want a full exact embedding into the category of modules for some ring. The first step is to take the Yoneda embedding $\mathcal{A} \to \mathcal{L}^\mathrm{op}$, where $\mathcal{L} = \mathrm{Lex}(\mathcal{A},\mathsf{Ab})$. There are other ways to denote $\mathcal{L}$ -- it's $\mathrm{Ind}(\mathcal{A}^\mathrm{op})$, or $\mathrm{Pro}(\mathcal{A})^\mathrm{op}$. So it's a general fact that this embedding is exact, and I totally believe that $\mathcal{L}^\mathrm{op}$ is abelian.
But unless I'm reading something wrong, the point is that $\mathcal{L}^\mathrm{op}$ actually is a category of modules over a ring -- one constructs a projective generator in it. This can't be right. Because $\mathcal{L}^\mathrm{op} = \mathrm{Ind}(\mathcal{A}^\mathrm{op})^\mathrm{op}$ is the opposite of a locally presentable category! So $\mathcal{L}^\mathrm{op}$ can't be locally presentable (the opposite of a locally presentable category is never locally presentable unless the category is a preorder -- cf the nlab Counterexample 7, or Thm 1.64 in Adámek and Rosický), and hence it can't be the category of modules over a ring.
What am I misunderstanding? The obvious thing to do is to dualize and embed $\mathcal{A}$ into $\mathrm{Lex}(\mathcal{A}^\mathrm{op},\mathsf{Ab}) = \mathrm{Ind}(\mathcal{A})$, which is locally presentable. But if you do this it seems it would take some kind of miracle for the generator to be projective.