Sha256: c77a635ca5942dab79360bfd8e11b8865d8d61e16e386c2c0e319ec95792e536

Contents?: true

Size: 1.09 KB

Versions: 7

Compression:

Stored size: 1.09 KB

Contents

require 'spec_helper'
require 'rom/memory'

describe 'Mapper definition DSL' do
  include_context 'container'

  before do
    configuration.relation(:users)

    users = configuration.default.dataset(:users)
    users.insert(
      user_id: 1,
      user_name: 'Joe',
      user_email: 'joe@doe.com',
      'user.skype' => 'joe',
      :'user.phone' => '1234567890'
    )
  end

  describe 'prefix' do
    subject(:mapped_users) { container.relation(:users).as(:users).to_a }

    it 'applies new separator to the attributes following it' do
      configuration.mappers do
        define(:users) do
          prefix :user
          attribute :id
          attribute :name
          wrap :contacts do
            attribute :email

            prefix_separator '.'
            attribute 'skype'
            attribute :phone
          end
        end
      end

      expect(mapped_users).to eql [
        {
          id: 1,
          name: 'Joe',
          contacts: {
            email: 'joe@doe.com',
            'skype' => 'joe',
            phone: '1234567890'
          }
        }
      ]
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

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