retained 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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