lib/hightop/enumerable.rb in hightop-0.2.2 vs lib/hightop/enumerable.rb in hightop-0.2.3

- old
+ new

@@ -1,14 +1,10 @@ module Enumerable - def top(*args, &block) + def top(*args, **options, &block) if block || !(respond_to?(:scoping) || respond_to?(:with_scope)) - limit, options, _ = args - if limit.is_a?(Hash) && args.size == 1 - options = limit - limit = nil - end - options ||= {} + # TODO raise error if too many arguments + limit = args[0] min = options[:min] counts = Hash.new(0) map(&block).each do |v| counts[v] += 1 @@ -18,11 +14,11 @@ arr = counts.sort_by { |_, v| -v } arr = arr[0...limit] if limit Hash[arr] elsif respond_to?(:scoping) - scoping { @klass.send(:top, *args, &block) } + scoping { @klass.send(:top, *args, **options, &block) } else - with_scope(self) { klass.send(:top, *args, &block) } + with_scope(self) { klass.send(:top, *args, **options, &block) } end end end