lib/hightop.rb in hightop-0.1.0 vs lib/hightop.rb in hightop-0.1.1

- old
+ new

@@ -1,24 +1,32 @@ require "hightop/version" +require "active_record" module Hightop def top(column, limit = nil, options = {}) if limit.is_a?(Hash) options = limit limit = nil end order_str = column.is_a?(Array) ? column.map(&:to_s).join(", ") : column - relation = group(column).limit(limit).order("count_all DESC, #{order_str}") + relation = group(column).order("count_#{options[:uniq] || "all"} DESC, #{order_str}") + if limit + relation = relation.limit(limit) + end unless options[:nil] (column.is_a?(Array) ? column : [column]).each do |c| relation = relation.where("#{c} IS NOT NULL") end end - relation.count + if options[:uniq] + relation.uniq.count(options[:uniq]) + else + relation.count + end end end ActiveRecord::Base.send :extend, Hightop