Class: Contracts::Builtin::KeywordArgs

Inherits:
CallableClass show all
Defined in:
lib/contracts/builtin_contracts.rb

Overview

Use this for specifying contracts for keyword arguments Example: KeywordArgs[ e: Range, f: Optional[Num] ]

Instance Method Summary collapse

Methods inherited from CallableClass

[]

Constructor Details

#initialize(options) ⇒ KeywordArgs

Returns a new instance of KeywordArgs.



385
386
387
# File 'lib/contracts/builtin_contracts.rb', line 385

def initialize(options)
  @options = options
end

Instance Method Details

#inspectObject



400
401
402
# File 'lib/contracts/builtin_contracts.rb', line 400

def inspect
  to_s
end

#to_sObject



396
397
398
# File 'lib/contracts/builtin_contracts.rb', line 396

def to_s
  "KeywordArgs[#{options}]"
end

#valid?(hash) ⇒ Boolean

Returns:

  • (Boolean)


389
390
391
392
393
394
# File 'lib/contracts/builtin_contracts.rb', line 389

def valid?(hash)
  return false unless hash.keys - options.keys == []
  options.all? do |key, contract|
    Optional._valid?(hash, key, contract)
  end
end