Skip to content

ankane/hightop

Repository files navigation

Hightop

A nice shortcut for group count queries

Visit.top(:browser)
# {
#   "Chrome"  => 63,
#   "Safari"  => 50,
#   "Firefox" => 34
# }

Works with Active Record, Mongoid, arrays and hashes

Build Status

Installation

Add this line to your application’s Gemfile:

gem "hightop"

Options

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 and Hashes

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)

Upgrading

0.3.0

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.

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/hightop.git
cd hightop
bundle install
bundle exec rake test

About

A nice shortcut for group count queries

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages