Sha256: 57dbcb17d590f54d074fec0284595594b254edee8985b29143ecf5a2345942eb
Contents?: true
Size: 1.51 KB
Versions: 2
Compression:
Stored size: 1.51 KB
Contents
RSpec.shared_context('repo') do include_context 'models' include_context 'mappers' let(:repo) { repo_class.new(rom) } let(:repo_class) do Class.new(ROM::Repository[:users]) do relations :tasks, :tags, :posts, :labels def find_users(criteria) users.find(criteria) end def all_users users.all end def all_users_as_users users.as(:user).all end def users_with_tasks aggregate(many: { all_tasks: tasks.for_users }) end def users_with_tasks_and_tags aggregate(many: { all_tasks: tasks_with_tags(tasks.for_users) }) end def users_with_task aggregate(one: tasks) end def users_with_task_by_title(title) aggregate(one: tasks.find(title: title)) end def tasks_for_users(users) tasks.for_users(users) end def task_with_user tasks.find(id: 2).combine_parents(one: users) end def task_with_owner tasks.find(id: 2).combine_parents(one: { owner: users }) end def tasks_with_tags(tasks = self.tasks) tasks.combine_children(many: tags) end def tag_with_wrapped_task tags.wrap_parent(task: tasks) end end end let(:comments_repo) do Class.new(ROM::Repository[:comments]) do relations :likes def comments_with_likes aggregate(many: { likes: likes }) end def comments_with_emotions root.combine(:emotions) end end.new(rom) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rom-repository-0.3.1 | spec/shared/repo.rb |
rom-repository-0.3.0 | spec/shared/repo.rb |