Method: Linkage::ResultSet.register

Defined in:
lib/linkage/result_set.rb

.register(name, klass) ⇒ Object

Register a new result set. Subclasses must define #score_set and #match_set. Otherwise, an ArgumentError will be raised when you try to call register.

Parameters:

  • name (String)

    Result set name used in klass_for

  • klass (Class)

    ResultSet subclass



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/linkage/result_set.rb', line 27

def register(name, klass)
  methods = klass.instance_methods
  missing = []
  unless methods.include?(:score_set)
    missing.push("#score_set")
  end
  unless methods.include?(:match_set)
    missing.push("#match_set")
  end
  unless missing.empty?
    raise ArgumentError, "class must define #{missing.join(" and ")}"
  end

  @result_set ||= {}
  @result_set[name] = klass
end