Git Product home page Git Product logo

hightop's Introduction

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

hightop's People

Contributors

ankane avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.