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