Sha256: ed740616b97e630873ce939c2904579b7a2fca2dfaa0be3e83aa37819f159fd4

Contents?: true

Size: 460 Bytes

Versions: 48

Compression:

Stored size: 460 Bytes

Contents

# frozen_string_literal: true

module Ree::Contracts
  module ArgContracts
    class Kwargs < SimpleDelegator
      def self.[](**contracts)
        if contracts.empty?
          raise BadContractError, 'Kwargs contract should accept at least one contract'
        end

        new(**contracts)
      end

      attr_reader :contracts
      
      def initialize(**contracts)
        @contracts = contracts
        super(contracts)
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
ree-1.0.47 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.46 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.45 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.44 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.43 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.42 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.41 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.40 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.39 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.38 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.37 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.36 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.35 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.34 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.33 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.32 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.31 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.30 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.29 lib/ree/contracts/arg_contracts/kwargs.rb
ree-1.0.28 lib/ree/contracts/arg_contracts/kwargs.rb