Реализация ActiveRecord-подобных ассоциаций для обертки API

Недавно я написал ParseResource, который является оберткой Ruby API для Parse.com's REST api.

Вот несколько основных примеров использования:

class Post < ParseResource
  fields :title, :author, :body
end
p = Post.create(:title => "Hello world", :author => "Alan", :body => "ipso lorem")

Проект довольно молодой, и функция, которую я действительно хочу реализовать - это ассоциации. Что-то вроде этого:

class Author < ParseResource
  has_many :posts
  fields :name, :email
end
class Post < ParseResource
  belongs_to :author
  fields :title, :body
end
a = Author.create(:name => "Alan", :email => "alan@example.com")
p = Post.create(:title => "Associated!", :body => "ipso lorem", :author => a)
p.author.class #=> Author
p.author.name #=> "Alan"
a.posts #=> an array of Post objects

Буду рад любым советам, подсказкам и подводным камням от тех, кто реализовал нечто подобное, а также от тех, кто разбирается в REST API Parse.

11
задан Michael Anderson 3 January 2012 в 05:43
поделиться