class MethodPattern::PatternMatchedFunction::Pattern
Attributes
accepted[R]
block[R]
Public Class Methods
new(accepted, block)
click to toggle source
# File lib/method_pattern.rb, line 42 def initialize accepted, block @accepted = accepted @block = block end
Public Instance Methods
match?(args)
click to toggle source
# File lib/method_pattern.rb, line 47 def match? args @accepted.each_with_index do |pattern, index| return false unless match_arg?(pattern, args[index]) end true end
match_arg?(pattern, arg)
click to toggle source
# File lib/method_pattern.rb, line 55 def match_arg? pattern, arg case pattern when Hash return false unless arg.is_a? Hash pattern.each do |key, value| return false unless arg.key?(key) && match_arg?(value, arg[key]) end true else pattern === arg end end