Sha256: 57418344ca9238e579de147b54d47013fb75d4fb9117b0fbcfeee0a95da2186c

Contents?: true

Size: 639 Bytes

Versions: 8

Compression:

Stored size: 639 Bytes

Contents

require 'spec_helper'

describe 'Registering Custom Mappers' do
  include_context 'users and tasks'

  it 'allows registering arbitrary objects as mappers' do
    model = Struct.new(:name, :email)

    mapper = -> users {
      users.map { |tuple| model.new(*tuple.values_at(:name, :email)) }
    }

    setup.relation(:users) do
      def by_name(name)
        restrict(name: name)
      end
    end

    setup.mappers do
      register(:users, entity: mapper)
    end

    rom = setup.finalize

    users = rom.relation(:users).by_name('Jane').as(:entity)

    expect(users).to match_array([model.new('Jane', 'jane@doe.org')])
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rom-0.9.1 spec/integration/mappers/registering_custom_mappers_spec.rb
rom-0.9.0 spec/integration/mappers/registering_custom_mappers_spec.rb
rom-0.9.0.rc1 spec/integration/mappers/registering_custom_mappers_spec.rb
rom-0.9.0.beta1 spec/integration/mappers/registering_custom_mappers_spec.rb
rom-0.8.1 spec/integration/mappers/registering_custom_mappers_spec.rb
rom-0.8.0 spec/integration/mappers/registering_custom_mappers_spec.rb
rom-0.7.1 spec/integration/mappers/registering_custom_mappers_spec.rb
rom-0.7.0 spec/integration/mappers/registering_custom_mappers_spec.rb