A nice shortcut for group count queries
Visit.top(:browser)
# {
# "Chrome" => 63,
# "Safari" => 50,
# "Firefox" => 34
# }
Works with Active Record, Mongoid, arrays and hashes
Add this line to your application’s Gemfile:
gem "hightop"
Limit the results
Visit.top(:referring_domain, 10)
Include nil values
Visit.top(:search_keyword, nil: true)
Works with multiple groups
Visit.top([:city, :browser])
And expressions
Visit.top(Arel.sql("LOWER(referring_domain)"))
And distinct
Visit.top(:city, distinct: :user_id)
And min count
Visit.top(:city, min: 10)
Arrays
["up", "up", "down"].top
Hashes
{a: "up", b: "up", c: "down"}.top { |k, v| v }
Limit the results
["up", "up", "down"].top(1)
Include nil values
[nil, nil, "down"].top(nil: true)
Min count
["up", "up", "down"].top(min: 2)
Hightop 0.3.0 protects against unsafe input by default. For non-attribute arguments, use:
Visit.top(Arel.sql(known_safe_value))
Also, the uniq
option has been removed. Use distinct
instead.
View the changelog
Everyone is encouraged to help improve this project. Here are a few ways you can help:
- Report bugs
- Fix bugs and submit pull requests
- Write, clarify, or fix documentation
- Suggest or add new features
To get started with development:
git clone https://github.com/ankane/hightop.git
cd hightop
bundle install
bundle exec rake test