I would dispute the idea that singletones lead to spaghetti code and are ineffective. However, the problem of testing modules is legal, and the one-dimensionality does reduce modularity, since they are really just bizarre global variables.
I like the idea of Jauber about injecting a singleton instance into the controller from the application delegate (which is itself a singleton gem). I think the same approach will work for you.
, , - , API "" API , - API. .