# File lib/merb-parts.rb, line 28 def part(opts = {}) # Extract any params out that may have been specified klasses, opts = opts.partition do |k,v| k.respond_to?(:ancestors) && k.ancestors.include?(Merb::PartController) end opts = Hash[*(opts.flatten)] res = klasses.inject([]) do |memo,(klass,action)| memo << klass.new(self, opts)._dispatch(action) end res.size == 1 ? res[0] : res end