我想为Devise写一个扩展,允许您使用
parse_resource作为数据存储区(而不是ActiveRecord). parse_resource是Parse.com的REST api的Ruby包装器.它的界面与ActiveRecord几乎相同,并且是ActiveModel的投诉.因此,Devise的扩展可能不需要太多的非样板.
但是,我找不到任何教程.所有我必须依赖的是其他扩展的来源.从MongoMapper extension起,我总结出两个主要部分:
> The generators(不太需要)
在这里,您覆盖了DeviseGenerator#(generate_model | inject_devise_content | replace_default_devise_orm)方法.
> The “guts“(非常需要)
我不太确定这里发生了什么.似乎有很多样板,有一点自定义类型转换,底部有一个声明,我们将使用这个扩展名,而不是默认的ORM.
那是所有的吗?我失踪了什么有人可以更详细地解释“勇气”中发生的情况吗?
有没有任何简单的棉绒测试来运行,以确保与Devise完全兼容?
解决方法
我认为最好的办法是编写一个用于解析资源的
orm_adapter适配器.这是设计与各种场合整合的真正“胆量”.
其实很简单,包括可以使用的test suite.考虑到parse_resource是activemodel兼容的,适配器应该像克隆一个existing adapter一样简单.
接下来你将需要钩住orm_adapter来设计,这只是这些files之一的克隆.