Sha256: 7e33336cf856e3444e42fcc4bbbfad96373429dc11ef02b4b4b5e68930c81969
Contents?: true
Size: 1.87 KB
Versions: 7
Compression:
Stored size: 1.87 KB
Contents
ohm-sorted ========== [![Gem Version](https://badge.fury.io/rb/ohm-sorted.png)](http://badge.fury.io/rb/ohm-sorted) [![Build Status](https://travis-ci.org/educabilia/ohm-sorted.png?branch=master)](https://travis-ci.org/educabilia/ohm-sorted) [![Code Climate](https://codeclimate.com/github/educabilia/ohm-sorted.png)](https://codeclimate.com/github/educabilia/ohm-sorted) Sorted indices for Ohm Setup ----- 1. Include the `Callbacks` and `Sorted` modules in your model: include Ohm::Callbacks include Ohm::Sorted 2. Add the sorted indices you want to your model: - If you want a complete index: sorted :created_at - If you want to partition the index based on an attribute: sorted :created_at, :group_by => :site_id You can use both indices for the same attribute, as the partition keys are namespaced by the `group_by` attribute. You will need to resave every model if they already exist for the index to get built. The ranking attribute must be of a type that responds to `to_f`. Usage ----- To query the sorted index, use the `sorted_find` class method. >> Post.sorted_find(:created_at, site_id: "ar") This returns an `Ohm::SortedSet`, similiar to an `Ohm::Set` but backed by a sorted set. To limit the results to a certain score range, use the `between` method. This and the following methods return a new copy of the set object, but data is not read until it is necessary. >> Post.sorted_find(:created_at, site_id: "ar").between(start_time, end_time) To take a slice of the results, use the `slice` method. This returns a new copy of the set which will pass its `offset` and `count` parameters to Redis. >> Post.sorted_find(:created_at, site_id: "ar").slice(2, 4) Requirements ------------ This plugin works with Ohm versions higher than 0.1.3. Acknowledgements ---------------- Many thanks to Damian Janowski (https://github.com/djanowski)
Version data entries
7 entries across 7 versions & 1 rubygems