README.md in influxer-1.1.4 vs README.md in influxer-1.1.5

- old
+ new

@@ -1,50 +1,50 @@ [![Gem Version](https://badge.fury.io/rb/influxer.svg)](https://rubygems.org/gems/influxer) [![Build Status](https://travis-ci.org/palkan/influxer.svg?branch=master)](https://travis-ci.org/palkan/influxer) [![Dependency Status](https://dependencyci.com/github/palkan/influxer/badge)](https://dependencyci.com/github/palkan/influxer) ## Influxer **NOTE**: Version 0.3.x supports InfluxDB >= 0.9.0. For InfluxDB 0.8.x use [version 0.2.5](https://github.com/palkan/influxer/tree/0.2.5). -**NOTE**: Influxer is Rails 3, 4, 5 compatible! +**NOTE**: Influxer is Rails 4+ compatible! Influxer provides an ActiveRecord-style way to work with [InfluxDB](https://influxdb.com/) with many useful features, such as: - Familar query language (use `select`, `where`, `not`, `group` etc). - Support for Regex conditions: `where(page_id: /^home\/.*/) #=> select * ... where page_id=~/^home\/.*/`. - Special query methods for InfluxDB: - - `time` - group by time (e.g. `Metrics.time(:hour) => # select * ... group by time(1h)`); - - `past` - get only points for last hour/minute/whatever (e.g. `Metrics.past(:day) => # select * ... where time > now() - 1d`); - - `since` - get only points since date (e.g. `Metrics.since(Time.utc(2014,12,31)) => # select * ... where time > 1419984000s`); - - `merge` - merge series. + - `time` - group by time (e.g. `Metrics.time(:hour) => # select * ... group by time(1h)`); + - `past` - get only points for last hour/minute/whatever (e.g. `Metrics.past(:day) => # select * ... where time > now() - 1d`); + - `since` - get only points since date (e.g. `Metrics.since(Time.utc(2014,12,31)) => # select * ... where time > 1419984000s`); + - `merge` - merge series. - Scopes support - ```ruby - class Metrics < Influxer::Metrics - default_scope -> { time(:hour).limit(1000) } - tags :account_id - attributes :value - scope :unlimited, -> { limit(nil) } - scope :by_account, -> (id) { where(account_id: id) if id.present? } - end + ```ruby + class Metrics < Influxer::Metrics + default_scope -> { time(:hour).limit(1000) } + tags :account_id + attributes :value + scope :unlimited, -> { limit(nil) } + scope :by_account, -> (id) { where(account_id: id) if id.present? } + end - Metrics.by_account(1) - # => select * from "metrics" group by time(1h) where account_id=1 limit 1000 + Metrics.by_account(1) + # => select * from "metrics" group by time(1h) where account_id=1 limit 1000 - Metrics.unlimited.by_account(1).time(:week) - # => select * from "metrics" group by time(1w) where account_id=1 + Metrics.unlimited.by_account(1).time(:week) + # => select * from "metrics" group by time(1w) where account_id=1 - ``` + ``` - Integrate with your model: - ```ruby - class UserVisits < Influxer::Metrics - end - - class User < ActiveRecord::Base - has_metrics :visits - end + ```ruby + class UserVisits < Influxer::Metrics + end - user = User.find(1) - user.visits.write(page_id: 'home') - #=> < creates point {user_id: 1, page_id: 'home'} in 'user_visits' series > + class User < ActiveRecord::Base + has_metrics :visits + end - user.visits.where(page_id: 'home') - #=> select * from user_visits where page_id='home' - ``` + user = User.find(1) + user.visits.write(page_id: 'home') + #=> < creates point {user_id: 1, page_id: 'home'} in 'user_visits' series > + + user.visits.where(page_id: 'home') + #=> select * from user_visits where page_id='home' + ``` Find more on [Wiki](https://github.com/palkan/influxer/wiki).