retained 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c5889b1f2f5d17776a5955402abf0bb72a628c1b
4
- data.tar.gz: d0e5963b0989d0bdf257b4f6b1be551538dec580
3
+ metadata.gz: 73e354c2a489016a3d1c873e021d8f1b58a18dd2
4
+ data.tar.gz: 84dc43a781952b4a5b6d97584e1fff0d7ff77665
5
5
  SHA512:
6
- metadata.gz: 62d5f2c52a6286581a4924a3f23df5918450345e40088e3c0d012b24a9a53d3c505cd0199d0c93fb4a590237ad6e80f42b64a3821844defed9f81d83cb59d703
7
- data.tar.gz: 9279624e9cc42bf400675110ddecddf97cba3c8436880abe5e17e571a7a6b0a9f728b02bd2611cd632ce55184cbdf983320a94c72063d03e1920a41ed7f50819
6
+ metadata.gz: 2939b0bf01bfd76a12106ad70b87c57885b9a80d27b6cac0e7ae28fabebc02efec4e8fba4dab704421c68104f7280d06a147c89dc64106868a535bc237fdf75c
7
+ data.tar.gz: de8476c725c0db2dfeb7335309a42e3524ddf857a1ec43efd6e7f573160f357adca06edb3636c0ac3f83539bffadcac91c4c2d614e631243196a945bc2e6279c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # 0.2.3
2
+
3
+ * Updated to latest redis-bitops, which includes multiple fixes
4
+ and performance improvements.
5
+ * Refactor to ensure that unique_active is properly measured
6
+ across measurement periods.
7
+
1
8
  # 0.2.2
2
9
 
3
10
  * Fixed default group. Was erroneously using an empty string
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gem 'redis', '~> 3.1.0'
4
- gem 'redis-bitops', github: 'msaffitz/redis-bitops', branch: 'watch_keys_fix'
4
+ gem 'redis-bitops', github: 'msaffitz/redis-bitops', ref: '2ebd12b5044046db67e7958eda0701257b3eb3f9'
5
5
  gem 'activesupport'
6
6
 
7
7
  group :development do
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  GIT
2
2
  remote: git://github.com/msaffitz/redis-bitops.git
3
- revision: a82f1bdc809e843ff297bcaf4c7664d3fc461772
4
- branch: watch_keys_fix
3
+ revision: 2ebd12b5044046db67e7958eda0701257b3eb3f9
4
+ ref: 2ebd12b5044046db67e7958eda0701257b3eb3f9
5
5
  specs:
6
6
  redis-bitops (0.2.1)
7
7
  redis
@@ -34,7 +34,8 @@ module Retained
34
34
  # period is provided.
35
35
  def unique_active(group: 'default', start:, stop: Time.now)
36
36
  bitmaps = []
37
- while ( start <= stop)
37
+ start = period_start(group, start)
38
+ while (start <= stop)
38
39
  bitmaps << config.redis_connection.sparse_bitmap(key_period(group, start))
39
40
  start += seconds_in_reporting_interval(config.group(group).reporting_interval)
40
41
  end
@@ -83,11 +84,15 @@ LUA
83
84
  # Returns the key for the group at the period. All periods are
84
85
  # internally stored relative to UTC.
85
86
  def key_period(group, period)
86
- period = period.utc.send("beginning_of_#{config.group(group).reporting_interval}")
87
- "#{config.prefix}:#{group}:#{period.to_i}"
87
+ "#{config.prefix}:#{group}:#{period_start(group, period).to_i}"
88
88
  end
89
89
 
90
90
  private
91
+ # Returns the time (UTC) that the period starts at for the given group
92
+ def period_start(group, period)
93
+ period.utc.send("beginning_of_#{config.group(group).reporting_interval}")
94
+ end
95
+
91
96
  def seconds_in_reporting_interval(interval)
92
97
  case(interval.to_sym)
93
98
  when :day then 60*60*24
@@ -2,7 +2,7 @@ module Retained
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- PATCH = 2
5
+ PATCH = 3
6
6
  BUILD = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
data/retained.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: retained 0.2.2 ruby lib
5
+ # stub: retained 0.2.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "retained"
9
- s.version = "0.2.2"
9
+ s.version = "0.2.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Mike Saffitz"]
14
- s.date = "2014-11-07"
14
+ s.date = "2014-11-16"
15
15
  s.description = "\n Easy tracking of activity and retention at scale in daily, hourly, or minute intervals\n using sparse Redis bitmaps.\n "
16
16
  s.email = "m@saffitz.com"
17
17
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: retained
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Saffitz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-07 00:00:00.000000000 Z
11
+ date: 2014-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis