Class: Contracts::Builtin::DescendantOf

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

Overview

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

Instance Method Summary collapse

Methods inherited from CallableClass

[]

Constructor Details

#initialize(parent_class) ⇒ DescendantOf

Returns a new instance of DescendantOf.



453
454
455
# File 'lib/contracts/builtin_contracts.rb', line 453

def initialize(parent_class)
  @parent_class = parent_class
end

Instance Method Details

#inspectObject



465
466
467
# File 'lib/contracts/builtin_contracts.rb', line 465

def inspect
  to_s
end

#to_sObject



461
462
463
# File 'lib/contracts/builtin_contracts.rb', line 461

def to_s
  "DescendantOf[#{parent_class}]"
end

#valid?(given_class) ⇒ Boolean

Returns:

  • (Boolean)


457
458
459
# File 'lib/contracts/builtin_contracts.rb', line 457

def valid?(given_class)
  given_class.is_a?(Class) && given_class.ancestors.include?(parent_class)
end