Sha256: 780acd22aad54de1b8c3bb07baabd591e156fff155a07c10cfaf5e139c668d81

Contents?: true

Size: 683 Bytes

Versions: 2

Compression:

Stored size: 683 Bytes

Contents

module Mocktail
  class Signature < Struct.new(
    :positional_params,
    :positional_args,
    :keyword_params,
    :keyword_args,
    :block_param,
    :block_arg,
    keyword_init: true
  )
    DEFAULT_REST_ARGS = "args"
    DEFAULT_REST_KWARGS = "kwargs"
    DEFAULT_BLOCK_PARAM = "blk"
  end

  class Params < Struct.new(
    :all,
    :required,
    :optional,
    :rest,
    keyword_init: true
  )

    def initialize(**params)
      super
      self.all ||= []
      self.required ||= []
      self.optional ||= []
    end

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

    def rest?
      !!rest
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mocktail-1.2.2 lib/mocktail/value/signature.rb
mocktail-1.2.1 lib/mocktail/value/signature.rb