Sha256: 72ef1ab6e249ee651773453ad3f2ac55ccb3d3bf9d516995a36c7e1cc8ded1f1

Contents?: true

Size: 709 Bytes

Versions: 1

Compression:

Stored size: 709 Bytes

Contents

# frozen_string_literal: true

require "interactify/contracts/mismatching_organizer_error"

module Interactify
  module Contracts
    class Organizing
      attr_reader :interactor, :organizing

      def self.validate(interactor, *organizing)
        new(interactor, *organizing).validate

        interactor
      end

      def initialize(interactor, *organizing)
        @interactor = interactor
        @organizing = organizing
      end

      def validate
        return if organizing == organized

        Interactify.trigger_definition_error(
          MismatchingOrganizerError.new(interactor, organizing, organized)
        )
      end

      delegate :organized, to: :interactor
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
interactify-0.5.0 lib/interactify/contracts/organizing.rb