My approach is now
I hope this helps someone
facebook_user = { "name": "Jo Doe" }
class Mapper::FacebookUser
def initialize (user, facebook_user={})
@user = user # AR model
# allows ['key'] or [:keys]
@facebook_user = facebook_user.with_indifferent_access
end
def name
@user.name = @facebook_user.dig('name') # sets to nil if not present (works also with chains) >= Ruby 2.3
end
end
require 'spec_helper.rb'
describe Mapper::FacebookUser do
before(:each) do
@user = User.new
@facebook_user = {}
end
it 'should map name to name' do
@facebook_user['name']
Mapper::FacebookUser.new(@user, @facebook_user).name
@user.name.should eq("User Name")
end
end