Class: Thy::Types::ClassExtending

Inherits:
Object
  • Object
show all
Defined in:
lib/thy/types/class_extending.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ ClassExtending

Returns a new instance of ClassExtending.



6
7
8
# File 'lib/thy/types/class_extending.rb', line 6

def initialize(klass)
  @klass = klass
end

Instance Method Details

#check(value) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/thy/types/class_extending.rb', line 10

def check(value)
  unless value.is_a?(::Class)
    return Failure.new("Expected #{value.inspect} to be a Class")
  end

  if value.ancestors.include?(@klass)
    Result::Success
  else
    Result::Failure.new(
      "Expected #{value.inspect} to be a descendant of: #{@klass.inspect}",
    )
  end
end