Module: Inferior::Core::DSL::Interface

Defined in:
lib/inferior/core/dsl/interface.rb

Instance Method Summary collapse

Instance Method Details

#extends(interface) ⇒ Object



9
10
11
12
13
# File 'lib/inferior/core/dsl/interface.rb', line 9

def extends(interface)
  interface.required_methods.each do |method|
    register_method!(method)
  end
end

#require_method(name, signature_lambda = -> {}) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/inferior/core/dsl/interface.rb', line 15

def require_method(name, signature_lambda = -> {})
  method = Method.build!(
    parameters: Method.parse_parameters!(signature_lambda),
    name: name,
  )
  register_method!(method)
end

#required_methodsObject



23
24
25
# File 'lib/inferior/core/dsl/interface.rb', line 23

def required_methods
  @required_methods ||= {}
end

#verify!(klass) ⇒ Object



27
28
29
# File 'lib/inferior/core/dsl/interface.rb', line 27

def verify!(klass)
  required_methods.each { |_name, method| method.verify_class!(klass) }
end