Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@solnic
Last active August 29, 2015 13:59
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save solnic/10553929 to your computer and use it in GitHub Desktop.
Save solnic/10553929 to your computer and use it in GitHub Desktop.
ROM mapper with anima model
require 'rom'
require 'anima'
class User
include Anima.new(:id, :name, :tasks)
end
class Task
include Anima.new(:title)
end
user_mapper = ROM::Mapper.build do
model User
map :id
map :name, from: :user_name
end
task_mapper = ROM::Mapper.build do
model Task
map :title
end
puts user_mapper.group(tasks: task_mapper).
load(id: 1, user_name: 'Piotr', tasks: [{title: 'Task 1'}, {title: 'Task 2'}]).inspect
#<User id=1 name="Piotr" tasks=[#<Task title="Task 1">, #<Task title="Task 2">]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment