Sha256: df07991611d5f0b8accdfb62faaec765a9199e651bc5bd8aac18a7a89a5d3e1c

Contents?: true

Size: 824 Bytes

Versions: 6

Compression:

Stored size: 824 Bytes

Contents

require 'spec_helper'
require 'rom/memory'

describe 'Mappers / Prefixing attributes' do
  include_context 'container'

  before do
    configuration.relation(:users)
  end

  it 'automatically maps all attributes using the provided prefix' do
    class Test::UserMapper < ROM::Mapper
      relation :users
      prefix :user

      model name: 'Test::User'

      attribute :id
      attribute :name
      attribute :email
    end

    configuration.register_mapper(Test::UserMapper)

    container.relations.users << {
      user_id: 123,
      user_name: 'Jane',
      user_email: 'jane@doe.org'
    }

    Test::User.send(:include, Equalizer.new(:id, :name, :email))

    jane = container.relation(:users).as(:users).first

    expect(jane).to eql(Test::User.new(id: 123, name: 'Jane', email: 'jane@doe.org'))
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rom-2.0.1 spec/integration/mappers/prefixing_attributes_spec.rb
rom-2.0.0 spec/integration/mappers/prefixing_attributes_spec.rb
rom-1.0.0 spec/integration/mappers/prefixing_attributes_spec.rb
rom-1.0.0.rc1 spec/integration/mappers/prefixing_attributes_spec.rb
rom-1.0.0.beta2 spec/integration/mappers/prefixing_attributes_spec.rb
rom-1.0.0.beta1 spec/integration/mappers/prefixing_attributes_spec.rb