module Defp::DefpMethods

Public Instance Methods

_() click to toggle source
# File lib/defp.rb, line 32
def _
  false
end
defp(*args) click to toggle source
# File lib/defp.rb, line 12
def defp(*args)
  matches_pattern?(*args) ? Defp::Between.new : Defp::NullBetween.new
end
matches_pattern?(*args) click to toggle source
# File lib/defp.rb, line 16
def matches_pattern?(*args)
  # arg[1] == called_by_method_args
  # arg[0] == pattern_args
  args.zip(@__last_args)
  .select { |arg| arg[0] }
  .all? do |arg|
    # TODO cleanup
    if arg[0].is_a? Hash
      pattern_args = arg[0].reject {|_,v| !v}
      pattern_args.keys.all? { |key| arg[1][key] == arg[0][key] }
    else
      arg[0] == arg[1]
    end
  end
end