Skip to content

ankane/hightop

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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