Sha256: cc9377771de58a87dd1e5916a489cd3670de9e7180a1be8e7ba7e6e0e0949e8d
Contents?: true
Size: 1.01 KB
Versions: 1
Compression:
Stored size: 1.01 KB
Contents
# typed: strict module Mocktail class ValidatesArguments extend T::Sig sig { void } def self.disable! Thread.current[:mocktail_arity_validation_disabled] = true end sig { void } def self.enable! Thread.current[:mocktail_arity_validation_disabled] = false end sig { returns(T::Boolean) } def self.disabled? !!Thread.current[:mocktail_arity_validation_disabled] end sig { params(disable: T.nilable(T::Boolean), blk: T.proc.returns(T.anything)).void } def self.optional(disable, &blk) return blk.call unless disable disable! ret = blk.call enable! ret end sig { void } def initialize @simulates_argument_error = T.let(SimulatesArgumentError.new, Mocktail::SimulatesArgumentError) end sig { params(dry_call: Call).returns(NilClass) } def validate(dry_call) return if self.class.disabled? if (error = @simulates_argument_error.simulate(dry_call)) raise error end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mocktail-2.0.0 | lib/mocktail/sorbet/mocktail/handles_dry_call/validates_arguments.rb |