Sha256: dd4724369bdd727d385d53f59b2049b1c78abf9a3b8c3c30d5b1f230765d2cf8

Contents?: true

Size: 618 Bytes

Versions: 1

Compression:

Stored size: 618 Bytes

Contents

module Mocktail
  class Params < T::Struct
    extend T::Sig

    prop :all, default: []
    prop :required, default: []
    prop :optional, default: []
    prop :rest

    def allowed
      all.select { |name| required.include?(name) || optional.include?(name) }
    end

    def rest?
      !!rest
    end
  end

  class Signature < T::Struct
    const :positional_params
    const :positional_args
    const :keyword_params
    const :keyword_args
    const :block_param
    const :block_arg, default: nil

    DEFAULT_REST_ARGS = "args"
    DEFAULT_REST_KWARGS = "kwargs"
    DEFAULT_BLOCK_PARAM = "blk"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mocktail-2.0.0 lib/mocktail/value/signature.rb