redis-objects-periodical 0.4.1 → 0.5.0
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 +4 -4
- data/.rubocop.yml +0 -1
- data/CHANGELOG.md +39 -11
- data/Gemfile +1 -1
- data/Gemfile.lock +15 -11
- data/Rakefile +1 -4
- data/lib/redis/objects/periodical/version.rb +1 -1
- data/lib/redis/recurring_at_intervals/annual.rb +3 -3
- data/lib/redis/recurring_at_intervals/daily.rb +3 -3
- data/lib/redis/recurring_at_intervals/hourly.rb +1 -1
- data/lib/redis/recurring_at_intervals/minutely.rb +1 -1
- data/lib/redis/recurring_at_intervals/monthly.rb +3 -3
- data/lib/redis/recurring_at_intervals/weekly.rb +3 -3
- data/lib/redis/recurring_at_intervals.rb +13 -9
- metadata +2 -3
- data/redis-objects-daily-counter.gemspec +0 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e51d6f427d67ed6b1295dc800494c8db45657bb0bc95ef495d198305c4458dc3
|
|
4
|
+
data.tar.gz: eaeda9b6bced5155ff0e8889b4ba65153c7b4792c9496542a0bb08e3689ad032
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b01d3bac963a358028ce4eadaf414ff8f310ac161413bbc16ffd9d58a870c0af1344990d4eab4f3376e95914a2ab93cb92a62524b3c86049877c8bd7b1c8831
|
|
7
|
+
data.tar.gz: c0a3ba3f9cc311ab2f212b7c5c0997b3e8d2a01fdc43aa8687067b0c9a0c54819c5d45e3a3afc3460c3b70d929d0370439ec8c06206b375347cf2274a52ad8e4
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,38 +1,66 @@
|
|
|
1
1
|
# Change log
|
|
2
2
|
|
|
3
|
+
## v0.5.0 (Sep 29, 2022)
|
|
4
|
+
|
|
5
|
+
### Feature
|
|
6
|
+
|
|
7
|
+
- [#34](https://github.com/ryz310/redis-object-daily-counter/pull/34) Enhanced type casting from Time to Date ([@ryz310](https://github.com/ryz310))
|
|
8
|
+
|
|
9
|
+
Enhances casting from `Time` to `Date`.
|
|
10
|
+
|
|
11
|
+
#### Before
|
|
12
|
+
|
|
13
|
+
```rb
|
|
14
|
+
homepage = Homepage.new
|
|
15
|
+
homepage.daily_active_users[Date.new(2021, 4, 1)] # OK
|
|
16
|
+
homepage.daily_active_users[Time.local(2021, 4, 1, 0, 0, 0)] # Error!
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
#### After
|
|
20
|
+
|
|
21
|
+
```rb
|
|
22
|
+
homepage = Homepage.new
|
|
23
|
+
homepage.daily_active_users[Date.new(2021, 4, 1)] # OK
|
|
24
|
+
homepage.daily_active_users[Time.local(2021, 4, 1, 0, 0, 0)] # OK
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Misc
|
|
28
|
+
|
|
29
|
+
- [#25](https://github.com/ryz310/redis-object-daily-counter/pull/25) Remove needless files ([@ryz310](https://github.com/ryz310))
|
|
30
|
+
|
|
3
31
|
## v0.4.1 (Jul 27, 2022)
|
|
4
32
|
|
|
5
33
|
### Misc
|
|
6
34
|
|
|
7
|
-
- [#22](https://github.com/ryz310/redis-
|
|
35
|
+
- [#22](https://github.com/ryz310/redis-objects-periodical/pull/22) Rename from redis-object-daily-counter to redis-objects-periodical ([@ryz310](https://github.com/ryz310))
|
|
8
36
|
|
|
9
37
|
## v0.4.0 (Jul 26, 2022)
|
|
10
38
|
|
|
11
39
|
### Feature
|
|
12
40
|
|
|
13
|
-
- [#17](https://github.com/ryz310/redis-
|
|
41
|
+
- [#17](https://github.com/ryz310/redis-objects-periodical/pull/17) Support `Redis::HashKey` as a recurring object ([@ryz310](https://github.com/ryz310))
|
|
14
42
|
|
|
15
43
|
### Breaking Change
|
|
16
44
|
|
|
17
|
-
- [#18](https://github.com/ryz310/redis-
|
|
45
|
+
- [#18](https://github.com/ryz310/redis-objects-periodical/pull/18) Bump up Ruby 3.1 and drop support Ruby 2.6 ([@ryz310](https://github.com/ryz310))
|
|
18
46
|
|
|
19
47
|
### Dependabot
|
|
20
48
|
|
|
21
|
-
- [#16](https://github.com/ryz310/redis-
|
|
22
|
-
- [#15](https://github.com/ryz310/redis-
|
|
23
|
-
- [#13](https://github.com/ryz310/redis-
|
|
24
|
-
- [#14](https://github.com/ryz310/redis-
|
|
25
|
-
- [#12](https://github.com/ryz310/redis-
|
|
49
|
+
- [#16](https://github.com/ryz310/redis-objects-periodical/pull/16) Bump yard from 0.9.26 to 0.9.28 ([@ryz310](https://github.com/ryz310))
|
|
50
|
+
- [#15](https://github.com/ryz310/redis-objects-periodical/pull/15) Bump rspec_junit_formatter from 0.4.1 to 0.5.1 ([@ryz310](https://github.com/ryz310))
|
|
51
|
+
- [#13](https://github.com/ryz310/redis-objects-periodical/pull/13) Bump rspec from 3.10.0 to 3.11.0 ([@ryz310](https://github.com/ryz310))
|
|
52
|
+
- [#14](https://github.com/ryz310/redis-objects-periodical/pull/14) Bump timecop from 0.9.4 to 0.9.5 ([@ryz310](https://github.com/ryz310))
|
|
53
|
+
- [#12](https://github.com/ryz310/redis-objects-periodical/pull/12) Bump redis-objects from 1.5.1 to 1.7.0 ([@ryz310](https://github.com/ryz310))
|
|
26
54
|
|
|
27
55
|
### Misc
|
|
28
56
|
|
|
29
|
-
- [#19](https://github.com/ryz310/redis-
|
|
57
|
+
- [#19](https://github.com/ryz310/redis-objects-periodical/pull/19) Reduce similar source codes with meta programming ([@ryz310](https://github.com/ryz310))
|
|
30
58
|
|
|
31
59
|
## v0.3.0 (Sep 23, 2021)
|
|
32
60
|
|
|
33
61
|
### Feature
|
|
34
62
|
|
|
35
|
-
- [#7](https://github.com/ryz310/redis-
|
|
63
|
+
- [#7](https://github.com/ryz310/redis-objects-periodical/pull/7) Add daily set ([@ryz310](https://github.com/ryz310))
|
|
36
64
|
|
|
37
65
|
> You can use `daily_set` in addition to the standard features of Redis::Objects.
|
|
38
66
|
>
|
|
@@ -75,7 +103,7 @@
|
|
|
75
103
|
|
|
76
104
|
### Breaking Change
|
|
77
105
|
|
|
78
|
-
- [#7](https://github.com/ryz310/redis-
|
|
106
|
+
- [#7](https://github.com/ryz310/redis-objects-periodical/pull/7) Add daily set ([@ryz310](https://github.com/ryz310))
|
|
79
107
|
|
|
80
108
|
> Rename the method from #delete to #delete_at a73251f
|
|
81
109
|
>
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
redis-objects-periodical (0.
|
|
4
|
+
redis-objects-periodical (0.5.0)
|
|
5
5
|
redis-objects
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -10,24 +10,28 @@ GEM
|
|
|
10
10
|
ast (2.4.2)
|
|
11
11
|
byebug (11.1.3)
|
|
12
12
|
coderay (1.1.3)
|
|
13
|
+
connection_pool (2.3.0)
|
|
13
14
|
diff-lcs (1.5.0)
|
|
14
15
|
docile (1.4.0)
|
|
15
16
|
method_source (1.0.0)
|
|
16
17
|
parallel (1.22.1)
|
|
17
|
-
parser (3.1.2.
|
|
18
|
+
parser (3.1.2.1)
|
|
18
19
|
ast (~> 2.4.1)
|
|
19
|
-
pry (0.
|
|
20
|
+
pry (0.14.1)
|
|
20
21
|
coderay (~> 1.1)
|
|
21
22
|
method_source (~> 1.0)
|
|
22
|
-
pry-byebug (3.
|
|
23
|
+
pry-byebug (3.10.1)
|
|
23
24
|
byebug (~> 11.0)
|
|
24
|
-
pry (
|
|
25
|
+
pry (>= 0.13, < 0.15)
|
|
25
26
|
rainbow (3.1.1)
|
|
26
27
|
rake (13.0.6)
|
|
27
|
-
redis (
|
|
28
|
+
redis (5.0.5)
|
|
29
|
+
redis-client (>= 0.9.0)
|
|
30
|
+
redis-client (0.9.0)
|
|
31
|
+
connection_pool
|
|
28
32
|
redis-objects (1.7.0)
|
|
29
33
|
redis
|
|
30
|
-
regexp_parser (2.
|
|
34
|
+
regexp_parser (2.6.0)
|
|
31
35
|
rexml (3.2.5)
|
|
32
36
|
rspec (3.11.0)
|
|
33
37
|
rspec-core (~> 3.11.0)
|
|
@@ -35,14 +39,14 @@ GEM
|
|
|
35
39
|
rspec-mocks (~> 3.11.0)
|
|
36
40
|
rspec-core (3.11.0)
|
|
37
41
|
rspec-support (~> 3.11.0)
|
|
38
|
-
rspec-expectations (3.11.
|
|
42
|
+
rspec-expectations (3.11.1)
|
|
39
43
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
40
44
|
rspec-support (~> 3.11.0)
|
|
41
45
|
rspec-mocks (3.11.1)
|
|
42
46
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
43
47
|
rspec-support (~> 3.11.0)
|
|
44
|
-
rspec-support (3.11.
|
|
45
|
-
rspec_junit_formatter (0.
|
|
48
|
+
rspec-support (3.11.1)
|
|
49
|
+
rspec_junit_formatter (0.6.0)
|
|
46
50
|
rspec-core (>= 2, < 4, != 2.12.0)
|
|
47
51
|
rubocop (0.93.1)
|
|
48
52
|
parallel (~> 1.10)
|
|
@@ -53,7 +57,7 @@ GEM
|
|
|
53
57
|
rubocop-ast (>= 0.6.0)
|
|
54
58
|
ruby-progressbar (~> 1.7)
|
|
55
59
|
unicode-display_width (>= 1.4.0, < 2.0)
|
|
56
|
-
rubocop-ast (1.
|
|
60
|
+
rubocop-ast (1.21.0)
|
|
57
61
|
parser (>= 3.1.1.0)
|
|
58
62
|
rubocop-performance (1.10.2)
|
|
59
63
|
rubocop (>= 0.90.0, < 2.0)
|
data/Rakefile
CHANGED
|
@@ -5,13 +5,13 @@ class Redis
|
|
|
5
5
|
module Annual
|
|
6
6
|
private
|
|
7
7
|
|
|
8
|
-
def
|
|
8
|
+
def redis_periodical_field_key(date_or_time)
|
|
9
9
|
date_key = date_or_time.strftime('%Y')
|
|
10
10
|
[original_key, date_key].flatten.join(':')
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def next_key(
|
|
14
|
-
|
|
13
|
+
def next_key(date_or_time, length = 1)
|
|
14
|
+
date_or_time.to_date.next_year(length)
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
end
|
|
@@ -5,13 +5,13 @@ class Redis
|
|
|
5
5
|
module Daily
|
|
6
6
|
private
|
|
7
7
|
|
|
8
|
-
def
|
|
8
|
+
def redis_periodical_field_key(date_or_time)
|
|
9
9
|
date_key = date_or_time.strftime('%Y-%m-%d')
|
|
10
10
|
[original_key, date_key].flatten.join(':')
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def next_key(
|
|
14
|
-
|
|
13
|
+
def next_key(date_or_time, length = 1)
|
|
14
|
+
date_or_time.to_date + length
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
end
|
|
@@ -5,13 +5,13 @@ class Redis
|
|
|
5
5
|
module Monthly
|
|
6
6
|
private
|
|
7
7
|
|
|
8
|
-
def
|
|
8
|
+
def redis_periodical_field_key(date_or_time)
|
|
9
9
|
date_key = date_or_time.strftime('%Y-%m')
|
|
10
10
|
[original_key, date_key].flatten.join(':')
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def next_key(
|
|
14
|
-
|
|
13
|
+
def next_key(date_or_time, length = 1)
|
|
14
|
+
date_or_time.to_date.next_month(length)
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
end
|
|
@@ -5,13 +5,13 @@ class Redis
|
|
|
5
5
|
module Weekly
|
|
6
6
|
private
|
|
7
7
|
|
|
8
|
-
def
|
|
8
|
+
def redis_periodical_field_key(date_or_time)
|
|
9
9
|
date_key = date_or_time.strftime('%YW%W')
|
|
10
10
|
[original_key, date_key].flatten.join(':')
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def next_key(
|
|
14
|
-
|
|
13
|
+
def next_key(date_or_time, length = 1)
|
|
14
|
+
date_or_time.to_date + 7 * length
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
end
|
|
@@ -4,7 +4,7 @@ class Redis
|
|
|
4
4
|
module RecurringAtIntervals
|
|
5
5
|
def initialize(key, *args)
|
|
6
6
|
@original_key = key
|
|
7
|
-
super(
|
|
7
|
+
super(redis_periodical_field_key(current_time), *args)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
attr_reader :original_key
|
|
@@ -19,23 +19,23 @@ class Redis
|
|
|
19
19
|
when -1 then nil # Ruby does this (a bit weird)
|
|
20
20
|
end
|
|
21
21
|
else
|
|
22
|
-
get_value_from_redis(
|
|
22
|
+
get_value_from_redis(redis_periodical_field_key(date_or_time))
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
alias slice []
|
|
26
26
|
|
|
27
27
|
def delete_at(date_or_time)
|
|
28
|
-
delete_from_redis(
|
|
28
|
+
delete_from_redis(redis_periodical_field_key(date_or_time))
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def range(start_date_or_time, end_date_or_time)
|
|
32
32
|
keys = []
|
|
33
|
-
date_or_time = start_date_or_time
|
|
33
|
+
date_or_time = normalize(start_date_or_time)
|
|
34
34
|
|
|
35
35
|
loop do
|
|
36
|
-
break if date_or_time > end_date_or_time
|
|
36
|
+
break if date_or_time > normalize(end_date_or_time)
|
|
37
37
|
|
|
38
|
-
keys <<
|
|
38
|
+
keys << redis_periodical_field_key(date_or_time)
|
|
39
39
|
date_or_time = next_key(date_or_time)
|
|
40
40
|
end
|
|
41
41
|
|
|
@@ -43,7 +43,7 @@ class Redis
|
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def at(date_or_time)
|
|
46
|
-
get_redis_object(
|
|
46
|
+
get_redis_object(redis_periodical_field_key(date_or_time))
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
def current_time
|
|
@@ -68,12 +68,16 @@ class Redis
|
|
|
68
68
|
raise 'not implemented'
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
-
def
|
|
71
|
+
def redis_periodical_field_key(_date_or_time)
|
|
72
72
|
raise 'not implemented'
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
def next_key(
|
|
75
|
+
def next_key(_date_or_time, _length = 1)
|
|
76
76
|
raise 'not implemented'
|
|
77
77
|
end
|
|
78
|
+
|
|
79
|
+
def normalize(date_or_time)
|
|
80
|
+
next_key(date_or_time, 0)
|
|
81
|
+
end
|
|
78
82
|
end
|
|
79
83
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: redis-objects-periodical
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ryz310
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-09-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: redis-objects
|
|
@@ -68,7 +68,6 @@ files:
|
|
|
68
68
|
- lib/redis/recurring_at_intervals/minutely.rb
|
|
69
69
|
- lib/redis/recurring_at_intervals/monthly.rb
|
|
70
70
|
- lib/redis/recurring_at_intervals/weekly.rb
|
|
71
|
-
- redis-objects-daily-counter.gemspec
|
|
72
71
|
- redis-objects-periodical.gemspec
|
|
73
72
|
homepage: https://github.com/ryz310/redis-objects-periodical
|
|
74
73
|
licenses:
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
Gem::Specification.new do |spec|
|
|
4
|
-
spec.name = 'redis-objects-daily-counter'
|
|
5
|
-
spec.version = '0.4.1'
|
|
6
|
-
spec.authors = ['ryz310']
|
|
7
|
-
spec.email = ['ryz310@gmail.com']
|
|
8
|
-
|
|
9
|
-
spec.summary = 'Daily counter within Redis::Objects'
|
|
10
|
-
spec.description = 'Daily counter within Redis::Objects. Works with any class or ORM.'
|
|
11
|
-
spec.post_install_message = 'The redis-objects-daily-counter gem has been deprecated and has '\
|
|
12
|
-
'been replaced by redis-objects-periodical. Please switch to '\
|
|
13
|
-
'redis-objects-periodical as soon as possible.'
|
|
14
|
-
spec.homepage = 'https://github.com/ryz310/redis-objects-daily-counter'
|
|
15
|
-
spec.license = 'MIT'
|
|
16
|
-
|
|
17
|
-
spec.metadata['homepage_uri'] = spec.homepage
|
|
18
|
-
spec.metadata['source_code_uri'] = 'https://github.com/ryz310/redis-objects-daily-counter'
|
|
19
|
-
spec.metadata['changelog_uri'] = 'https://github.com/ryz310/redis-objects-daily-counter/blob/master/CHANGELOG.md'
|
|
20
|
-
|
|
21
|
-
# Specify which files should be added to the gem when it is released.
|
|
22
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
23
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
24
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
|
25
|
-
end
|
|
26
|
-
spec.bindir = 'exe'
|
|
27
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
28
|
-
spec.require_paths = ['lib']
|
|
29
|
-
|
|
30
|
-
spec.required_ruby_version = '>= 2.7.0'
|
|
31
|
-
|
|
32
|
-
spec.add_dependency 'redis-objects'
|
|
33
|
-
|
|
34
|
-
# For more information and examples about making a new gem, checkout our
|
|
35
|
-
# guide at: https://bundler.io/guides/creating_gem.html
|
|
36
|
-
end
|