Sha256: 57fc172c7b7ca5439225bccb5a1e18f3abae90a1bda3ffb8c4fa671464c91979

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

require "rom/transformer"

module ROM
  Transformer.class_eval do
    class << self
      prepend SettingProxy

      # Configure relation for the transformer
      #
      # @example with a custom name
      #   class UsersMapper < ROM::Transformer
      #     relation :users, as: :json_serializer
      #
      #     map do
      #       rename_keys user_id: :id
      #       deep_stringify_keys
      #     end
      #   end
      #
      #   users.map_with(:json_serializer)
      #
      # @param name [Symbol]
      # @param options [Hash]
      # @option options :as [Symbol] Mapper identifier
      #
      # @deprecated
      #
      # @api public
      def relation(name = Undefined, as: name)
        if name == Undefined
          config.component.relation
        else
          config.component.relation = name
          config.component.namespace = name
          config.component.id = as
        end
      end

      def setting_mapping
        @setting_mapping ||= {
          register_as: [:component, :id],
          relation: [:component, [:id, :relation, :namespace]]
        }.freeze
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rom-6.0.0.alpha1 lib/rom/compat/transformer.rb