Method: Cuprum::Matching::ClassMethods#match
- Defined in:
- lib/cuprum/matching.rb
#match(status, error: nil, value: nil) {|result| ... } ⇒ Object
Defines a match clause for the matcher.
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/cuprum/matching.rb', line 27 def match(status, error: nil, value: nil, &block) validate_status!(status) validate_error!(error) validate_value!(value) clause = MatchClause.new(block, error, status, value) clauses = match_clauses[status] index = clauses.bsearch_index { |item| clause <= item } || -1 # Clauses are sorted from most specific to least specific. clauses.insert(index, clause) end |