class PatternMatch::PatternObjectDeconstructor

Public Class Methods

new(deconstructor, *subpatterns) click to toggle source
Calls superclass method PatternMatch::Pattern::new
# File lib/pattern-match/core.rb, line 206
def initialize(deconstructor, *subpatterns)
  super(*subpatterns)
  @deconstructor = deconstructor
end

Public Instance Methods

inspect() click to toggle source
# File lib/pattern-match/core.rb, line 221
def inspect
  "#<#{self.class.name}: deconstructor=#{@deconstructor.inspect}, subpatterns=#{subpatterns.inspect}>"
end
match(vals) click to toggle source
Calls superclass method PatternMatch::Pattern#match
# File lib/pattern-match/core.rb, line 211
def match(vals)
  super do |val|
    deconstructed_vals = @deconstructor.deconstruct(val)
    if subpatterns.empty?
      next deconstructed_vals.empty?
    end
    subpatterns[0].match(deconstructed_vals)
  end
end