# File lib/merb-action-args/get_args.rb, line 8 def self.translate(*args) sexp = ParseTree.translate(*args) # ParseTree.translate returns [nil] if called on an inherited method, so walk # up the inheritance chain to find the class that the method was defined in unless sexp.first klass = args.first.ancestors.detect do |klass| klass.public_instance_methods(false).include?(args.last.to_s) end sexp = ParseTree.translate(klass, args.last) if klass end sexp = Unifier.new.process(sexp) self.new(sexp) end