redis-objects-periodical 0.5.0 → 0.7.0

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
  SHA256:
3
- metadata.gz: e51d6f427d67ed6b1295dc800494c8db45657bb0bc95ef495d198305c4458dc3
4
- data.tar.gz: eaeda9b6bced5155ff0e8889b4ba65153c7b4792c9496542a0bb08e3689ad032
3
+ metadata.gz: be8af0088e6ff4a0d8e8e26185acd940452d08f123b1820eef198f636db7b1f7
4
+ data.tar.gz: 3cd7b2fbb4ea2fd2bd6e53c3d0798ec4bb1e93b89760a4a6fec48b0215fc072e
5
5
  SHA512:
6
- metadata.gz: 3b01d3bac963a358028ce4eadaf414ff8f310ac161413bbc16ffd9d58a870c0af1344990d4eab4f3376e95914a2ab93cb92a62524b3c86049877c8bd7b1c8831
7
- data.tar.gz: c0a3ba3f9cc311ab2f212b7c5c0997b3e8d2a01fdc43aa8687067b0c9a0c54819c5d45e3a3afc3460c3b70d929d0370439ec8c06206b375347cf2274a52ad8e4
6
+ metadata.gz: 284c3aca951719e4efd85195dbd6457061732a1507821b173cf8e61e879e75fc751694b2540b6716b087ec311ad71c3c9e6d59a29f46f25552e0ae5586baf715
7
+ data.tar.gz: 5fafbcc175c1303535e6e23ee9df14f41a1db5006515416171f15e73f38ee5192e6a0b9adfa6fdfb1ef94c351768bd543c7d9b08e1ce8d1e1de0ac84f621ae1b
data/.circleci/config.yml CHANGED
@@ -12,8 +12,8 @@ references:
12
12
  - &ruby_version
13
13
  ruby_version:
14
14
  type: enum
15
- enum: ["2.7", "3.0", "3.1"]
16
- default: "3.1"
15
+ enum: ["2.7", "3.0", "3.1", "3.2"]
16
+ default: "3.2"
17
17
 
18
18
  executors:
19
19
  default:
@@ -126,7 +126,7 @@ jobs:
126
126
  - code-climate/install
127
127
  - code-climate/sum-coverage:
128
128
  input: codeclimate.*.json
129
- parts: 3
129
+ parts: 4
130
130
  - code-climate/upload-coverage
131
131
  rubocop:
132
132
  parameters:
@@ -168,6 +168,9 @@ workflows:
168
168
  - build:
169
169
  name: build_on_ruby_3.1
170
170
  ruby_version: "3.1"
171
+ - build:
172
+ name: build_on_ruby_3.2
173
+ ruby_version: "3.2"
171
174
  - rubocop:
172
175
  ruby_version: "2.7"
173
176
  - yardoc
@@ -176,12 +179,14 @@ workflows:
176
179
  - build_on_ruby_2.7
177
180
  - build_on_ruby_3.0
178
181
  - build_on_ruby_3.1
182
+ - build_on_ruby_3.2
179
183
  - release:
180
184
  context: RubyGems API Key
181
185
  requires:
182
186
  - build_on_ruby_2.7
183
187
  - build_on_ruby_3.0
184
188
  - build_on_ruby_3.1
189
+ - build_on_ruby_3.2
185
190
  - rubocop
186
191
  filters:
187
192
  branches:
data/.rubocop.yml CHANGED
@@ -23,6 +23,9 @@ Naming/FileName:
23
23
  Exclude:
24
24
  - "lib/redis-objects-periodical.rb"
25
25
 
26
+ Style/DocumentDynamicEvalDefinition:
27
+ Enabled: false
28
+
26
29
  Style/TrailingCommaInArrayLiteral:
27
30
  EnforcedStyleForMultiline: comma
28
31
 
data/.rubocop_todo.yml CHANGED
@@ -1,16 +1,26 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2021-09-23 07:31:02 UTC using RuboCop version 0.93.1.
3
+ # on 2023-02-08 23:31:05 UTC using RuboCop version 1.45.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 6
10
- # Configuration parameters: IgnoredMethods.
11
- Metrics/AbcSize:
12
- Max: 21
13
-
14
- # Offense count: 41
9
+ # Offense count: 12
10
+ # Configuration parameters: AllowedConstants.
15
11
  Style/Documentation:
16
- Enabled: false
12
+ Exclude:
13
+ - "spec/**/*"
14
+ - "test/**/*"
15
+ - "lib/redis-objects-periodical.rb"
16
+ - "lib/redis/base_counter_object.rb"
17
+ - "lib/redis/base_hash_key_object.rb"
18
+ - "lib/redis/base_set_object.rb"
19
+ - "lib/redis/base_value_object.rb"
20
+ - "lib/redis/recurring_at_intervals.rb"
21
+ - "lib/redis/recurring_at_intervals/annual.rb"
22
+ - "lib/redis/recurring_at_intervals/daily.rb"
23
+ - "lib/redis/recurring_at_intervals/hourly.rb"
24
+ - "lib/redis/recurring_at_intervals/minutely.rb"
25
+ - "lib/redis/recurring_at_intervals/monthly.rb"
26
+ - "lib/redis/recurring_at_intervals/weekly.rb"
data/CHANGELOG.md CHANGED
@@ -1,5 +1,65 @@
1
1
  # Change log
2
2
 
3
+ ## v0.7.0 (Feb 12, 2023)
4
+
5
+ ### Feature
6
+
7
+ - [#128](https://github.com/ryz310/redis-object-daily-counter/pull/128) Support`Redis::Value` as a periodical object ([@ryz310](https://github.com/ryz310))
8
+
9
+ > The periodical values automatically switches the save destination when the date changes.
10
+ >
11
+ > ```rb
12
+ > class Homepage
13
+ > include Redis::Objects
14
+ >
15
+ > daily_value :cache, expireat: -> { Time.now + 2_678_400 } # about a month
16
+ >
17
+ > def id
18
+ > 1
19
+ > end
20
+ > end
21
+ >
22
+ > homepage = Homepage.new
23
+ >
24
+ > # 2021-04-01
25
+ > homepage.cache.value = 'a'
26
+ >
27
+ > # 2021-04-02 (next day)
28
+ > homepage.cache.value = 'b'
29
+ >
30
+ > # 2021-04-03 (next day)
31
+ > homepage.cache.value = 'c'
32
+ >
33
+ > homepage.cache[Date.new(2021, 4, 1)] # => 'a'
34
+ > homepage.cache[Date.new(2021, 4, 1), 3] # => ['a', 'b', 'c']
35
+ > homepage.cache[Date.new(2021, 4, 1)..Date.new(2021, 4, 2)] # => ['a', 'b']
36
+ >
37
+ > homepage.cache.delete_at(Date.new(2021, 4, 1))
38
+ > homepage.cache.range(Date.new(2021, 4, 1), Date.new(2021, 4, 3)) # => [nil, 'b', 'c']
39
+ > homepage.cache.at(Date.new(2021, 4, 2)) # => #<Redis::Value key="homepage:1:cache:2021-04-02">
40
+ > homepage.cache.at(Date.new(2021, 4, 2)).value # 'b'
41
+ > ```
42
+
43
+ ## v0.6.0 (Feb 12, 2023)
44
+
45
+ ### Feature
46
+
47
+ - [#125](https://github.com/ryz310/redis-object-daily-counter/pull/125) Support Ruby 3.2 ([@ryz310](https://github.com/ryz310))
48
+
49
+ ### Rubocop Challenge
50
+
51
+ - [#104](https://github.com/ryz310/redis-object-daily-counter/pull/104) Style/RedundantStringEscape-20221214233055 ([@ryz310](https://github.com/ryz310))
52
+ - [#124](https://github.com/ryz310/redis-object-daily-counter/pull/124) Re-generate .rubocop_todo.yml with RuboCop v1.45.1 ([@ryz310](https://github.com/ryz310))
53
+
54
+ ### Dependabot
55
+
56
+ - [#70](https://github.com/ryz310/redis-object-daily-counter/pull/70) Bump rspec from 3.11.0 to 3.12.0 ([@ryz310](https://github.com/ryz310))
57
+ - [#101](https://github.com/ryz310/redis-object-daily-counter/pull/101) Bump timecop from 0.9.5 to 0.9.6 ([@ryz310](https://github.com/ryz310))
58
+ - [#109](https://github.com/ryz310/redis-object-daily-counter/pull/109) Bump rubocop-performance from 1.15.1 to 1.15.2 ([@ryz310](https://github.com/ryz310))
59
+ - [#110](https://github.com/ryz310/redis-object-daily-counter/pull/110) Bump simplecov from 0.21.2 to 0.22.0 ([@ryz310](https://github.com/ryz310))
60
+ - [#116](https://github.com/ryz310/redis-object-daily-counter/pull/116) Bump rubocop-rspec from 2.18.0 to 2.18.1 ([@ryz310](https://github.com/ryz310))
61
+ - [#122](https://github.com/ryz310/redis-object-daily-counter/pull/122) Bump rubocop-performance from 1.15.2 to 1.16.0 ([@ryz310](https://github.com/ryz310))
62
+
3
63
  ## v0.5.0 (Sep 29, 2022)
4
64
 
5
65
  ### Feature
data/Gemfile CHANGED
@@ -8,11 +8,11 @@ gemspec
8
8
  gem 'bundler', '>= 2.0'
9
9
  gem 'pry-byebug'
10
10
  gem 'rake', '~> 13.0'
11
- gem 'rspec', '~> 3.11'
11
+ gem 'rspec', '~> 3.12'
12
12
  gem 'rspec_junit_formatter'
13
- gem 'rubocop', '~> 0.80'
13
+ gem 'rubocop', '~> 1.36'
14
14
  gem 'rubocop-performance'
15
15
  gem 'rubocop-rspec'
16
- gem 'simplecov', '0.21.2'
16
+ gem 'simplecov', '0.22.0'
17
17
  gem 'timecop'
18
18
  gem 'yard'
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- redis-objects-periodical (0.5.0)
5
- redis-objects
4
+ redis-objects-periodical (0.7.0)
5
+ redis-objects (~> 1.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -13,11 +13,12 @@ GEM
13
13
  connection_pool (2.3.0)
14
14
  diff-lcs (1.5.0)
15
15
  docile (1.4.0)
16
+ json (2.6.3)
16
17
  method_source (1.0.0)
17
18
  parallel (1.22.1)
18
- parser (3.1.2.1)
19
+ parser (3.2.1.0)
19
20
  ast (~> 2.4.1)
20
- pry (0.14.1)
21
+ pry (0.14.2)
21
22
  coderay (~> 1.1)
22
23
  method_source (~> 1.0)
23
24
  pry-byebug (3.10.1)
@@ -25,55 +26,58 @@ GEM
25
26
  pry (>= 0.13, < 0.15)
26
27
  rainbow (3.1.1)
27
28
  rake (13.0.6)
28
- redis (5.0.5)
29
+ redis (5.0.6)
29
30
  redis-client (>= 0.9.0)
30
- redis-client (0.9.0)
31
+ redis-client (0.12.1)
31
32
  connection_pool
32
33
  redis-objects (1.7.0)
33
34
  redis
34
- regexp_parser (2.6.0)
35
+ regexp_parser (2.7.0)
35
36
  rexml (3.2.5)
36
- rspec (3.11.0)
37
- rspec-core (~> 3.11.0)
38
- rspec-expectations (~> 3.11.0)
39
- rspec-mocks (~> 3.11.0)
40
- rspec-core (3.11.0)
41
- rspec-support (~> 3.11.0)
42
- rspec-expectations (3.11.1)
37
+ rspec (3.12.0)
38
+ rspec-core (~> 3.12.0)
39
+ rspec-expectations (~> 3.12.0)
40
+ rspec-mocks (~> 3.12.0)
41
+ rspec-core (3.12.1)
42
+ rspec-support (~> 3.12.0)
43
+ rspec-expectations (3.12.2)
43
44
  diff-lcs (>= 1.2.0, < 2.0)
44
- rspec-support (~> 3.11.0)
45
- rspec-mocks (3.11.1)
45
+ rspec-support (~> 3.12.0)
46
+ rspec-mocks (3.12.3)
46
47
  diff-lcs (>= 1.2.0, < 2.0)
47
- rspec-support (~> 3.11.0)
48
- rspec-support (3.11.1)
48
+ rspec-support (~> 3.12.0)
49
+ rspec-support (3.12.0)
49
50
  rspec_junit_formatter (0.6.0)
50
51
  rspec-core (>= 2, < 4, != 2.12.0)
51
- rubocop (0.93.1)
52
+ rubocop (1.45.1)
53
+ json (~> 2.3)
52
54
  parallel (~> 1.10)
53
- parser (>= 2.7.1.5)
55
+ parser (>= 3.2.0.0)
54
56
  rainbow (>= 2.2.2, < 4.0)
55
- regexp_parser (>= 1.8)
56
- rexml
57
- rubocop-ast (>= 0.6.0)
57
+ regexp_parser (>= 1.8, < 3.0)
58
+ rexml (>= 3.2.5, < 4.0)
59
+ rubocop-ast (>= 1.24.1, < 2.0)
58
60
  ruby-progressbar (~> 1.7)
59
- unicode-display_width (>= 1.4.0, < 2.0)
60
- rubocop-ast (1.21.0)
61
- parser (>= 3.1.1.0)
62
- rubocop-performance (1.10.2)
63
- rubocop (>= 0.90.0, < 2.0)
61
+ unicode-display_width (>= 2.4.0, < 3.0)
62
+ rubocop-ast (1.26.0)
63
+ parser (>= 3.2.1.0)
64
+ rubocop-capybara (2.17.0)
65
+ rubocop (~> 1.41)
66
+ rubocop-performance (1.16.0)
67
+ rubocop (>= 1.7.0, < 2.0)
64
68
  rubocop-ast (>= 0.4.0)
65
- rubocop-rspec (1.44.1)
66
- rubocop (~> 0.87)
67
- rubocop-ast (>= 0.7.1)
69
+ rubocop-rspec (2.18.1)
70
+ rubocop (~> 1.33)
71
+ rubocop-capybara (~> 2.17)
68
72
  ruby-progressbar (1.11.0)
69
- simplecov (0.21.2)
73
+ simplecov (0.22.0)
70
74
  docile (~> 1.1)
71
75
  simplecov-html (~> 0.11)
72
76
  simplecov_json_formatter (~> 0.1)
73
77
  simplecov-html (0.12.3)
74
78
  simplecov_json_formatter (0.1.4)
75
- timecop (0.9.5)
76
- unicode-display_width (1.8.0)
79
+ timecop (0.9.6)
80
+ unicode-display_width (2.4.2)
77
81
  webrick (1.7.0)
78
82
  yard (0.9.28)
79
83
  webrick (~> 1.7.0)
@@ -89,14 +93,14 @@ DEPENDENCIES
89
93
  pry-byebug
90
94
  rake (~> 13.0)
91
95
  redis-objects-periodical!
92
- rspec (~> 3.11)
96
+ rspec (~> 3.12)
93
97
  rspec_junit_formatter
94
- rubocop (~> 0.80)
98
+ rubocop (~> 1.36)
95
99
  rubocop-performance
96
100
  rubocop-rspec
97
- simplecov (= 0.21.2)
101
+ simplecov (= 0.22.0)
98
102
  timecop
99
103
  yard
100
104
 
101
105
  BUNDLED WITH
102
- 2.3.11
106
+ 2.3.26
data/README.md CHANGED
@@ -32,6 +32,7 @@ class Homepage
32
32
  daily_counter :pv, expireat: -> { Time.now + 2_678_400 } # about a month
33
33
  daily_hash_key :browsing_history, expireat: -> { Time.now + 2_678_400 } # about a month
34
34
  daily_set :dau, expireat: -> { Time.now + 2_678_400 } # about a month
35
+ daily_value :cache, expireat: -> { Time.now + 2_678_400 } # about a month
35
36
 
36
37
  def id
37
38
  1
@@ -99,6 +100,46 @@ homepage.pv.at(Date.new(2021, 4, 2)).value # 2
99
100
  - `minutely_counter`
100
101
  - Key format: `model_name:id:field_name:yyyy-mm-ddThh:mi`
101
102
 
103
+ ### Periodical Values
104
+
105
+ The periodical values automatically switches the save destination when the date changes.
106
+
107
+ ```rb
108
+ # 2021-04-01
109
+ homepage.cache.value = 'a'
110
+
111
+ # 2021-04-02 (next day)
112
+ homepage.cache.value = 'b'
113
+
114
+ # 2021-04-03 (next day)
115
+ homepage.cache.value = 'c'
116
+
117
+ homepage.cache[Date.new(2021, 4, 1)] # => 'a'
118
+ homepage.cache[Date.new(2021, 4, 1), 3] # => ['a', 'b', 'c']
119
+ homepage.cache[Date.new(2021, 4, 1)..Date.new(2021, 4, 2)] # => ['a', 'b']
120
+
121
+ homepage.cache.delete_at(Date.new(2021, 4, 1))
122
+ homepage.cache.range(Date.new(2021, 4, 1), Date.new(2021, 4, 3)) # => [nil, 'b', 'c']
123
+ homepage.cache.at(Date.new(2021, 4, 2)) # => #<Redis::Value key="homepage:1:cache:2021-04-02">
124
+ homepage.cache.at(Date.new(2021, 4, 2)).value # 'b'
125
+ ```
126
+
127
+ #### Periodical Values Family
128
+
129
+ - `annual_value`
130
+ - Key format: `model_name:id:field_name:yyyy`
131
+ - Redis is a highly volatile key-value store, so I don't recommend using it.
132
+ - `monthly_value`
133
+ - Key format: `model_name:id:field_name:yyyy-mm`
134
+ - `weekly_value`
135
+ - Key format: `model_name:id:field_name:yyyyWw`
136
+ - `daily_value`
137
+ - Key format: `model_name:id:field_name:yyyy-mm-dd`
138
+ - `hourly_value`
139
+ - Key format: `model_name:id:field_name:yyyy-mm-ddThh`
140
+ - `minutely_value`
141
+ - Key format: `model_name:id:field_name:yyyy-mm-ddThh:mi`
142
+
102
143
  ### Periodical Hashes
103
144
 
104
145
  The periodical hashes also automatically switches the save destination when the date changes.
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Redis
4
+ module BaseValueObject
5
+ private
6
+
7
+ def get_redis_object(key)
8
+ Redis::Value.new(key)
9
+ end
10
+
11
+ def get_value_from_redis(key)
12
+ unmarshal(redis.get(key))
13
+ end
14
+
15
+ def get_values_from_redis(keys)
16
+ redis.mget(*keys).map { |v| unmarshal(v) }
17
+ end
18
+
19
+ def delete_from_redis(key)
20
+ redis.del(key)
21
+ end
22
+
23
+ def empty_value
24
+ []
25
+ end
26
+ end
27
+ end
@@ -3,7 +3,7 @@
3
3
  class Redis
4
4
  module Objects
5
5
  module Periodical
6
- VERSION = '0.5.0'
6
+ VERSION = '0.7.0'
7
7
  end
8
8
  end
9
9
  end
@@ -23,7 +23,7 @@ Redis::PERIODICALS.each do |periodical| # rubocop:disable Metrics/BlockLength
23
23
  )
24
24
  end
25
25
 
26
- define_method(:"#\{name\}=") do |values|
26
+ define_method(:"#\{name}=") do |values|
27
27
  hash_key = public_send(name)
28
28
 
29
29
  redis.pipelined do
@@ -23,7 +23,7 @@ Redis::PERIODICALS.each do |periodical| # rubocop:disable Metrics/BlockLength
23
23
  )
24
24
  end
25
25
 
26
- define_method(:"#\{name\}=") do |values|
26
+ define_method(:"#\{name}=") do |values|
27
27
  set = public_send(name)
28
28
 
29
29
  redis.pipelined do
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'redis/periodical_value'
4
+
5
+ Redis::PERIODICALS.each do |periodical| # rubocop:disable Metrics/BlockLength
6
+ new_module = Module.new
7
+ new_module.module_eval <<~RUBY, __FILE__, __LINE__ + 1
8
+ def self.included(klass)
9
+ klass.extend ClassMethods
10
+ end
11
+
12
+ module ClassMethods
13
+ def #{periodical}_value(name, options = {})
14
+ redis_objects[name.to_sym] = options.merge(:type => :value)
15
+
16
+ mod = Module.new do
17
+ define_method(name) do
18
+ Redis::#{periodical.capitalize}Value.new(
19
+ redis_field_key(name), redis_field_redis(name), redis_options(name)
20
+ )
21
+ end
22
+ define_method(:"#\{name}=") do |value|
23
+ public_send(name).value = value
24
+ end
25
+ end
26
+
27
+ if options[:global]
28
+ extend mod
29
+
30
+ # dispatch to class methods
31
+ define_method(name) do
32
+ self.class.public_send(name)
33
+ end
34
+ define_method(:"#\{name}=") do |value|
35
+ self.class.public_send(:"#\{name}=", value)
36
+ end
37
+ else
38
+ include mod
39
+ end
40
+ end
41
+ end
42
+ RUBY
43
+ Redis::Objects.const_set("#{periodical.capitalize}Values", new_module)
44
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "#{File.dirname(__FILE__)}/recurring_at_intervals"
4
+ require "#{File.dirname(__FILE__)}/base_value_object"
5
+
6
+ Redis::PERIODICALS.each do |periodical|
7
+ require "#{File.dirname(__FILE__)}/recurring_at_intervals/#{periodical}"
8
+
9
+ new_class = Class.new(Redis::Value) do
10
+ include Redis::RecurringAtIntervals
11
+ include Redis::BaseValueObject
12
+ include const_get("Redis::RecurringAtIntervals::#{periodical.capitalize}")
13
+ end
14
+ Redis.const_set("#{periodical.capitalize}Value", new_class)
15
+ end
@@ -11,7 +11,7 @@ class Redis
11
11
  end
12
12
 
13
13
  def next_key(time, length = 1)
14
- time + 3600 * length
14
+ time + (3600 * length)
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ class Redis
11
11
  end
12
12
 
13
13
  def next_key(time, length = 1)
14
- time + 60 * length
14
+ time + (60 * length)
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ class Redis
11
11
  end
12
12
 
13
13
  def next_key(date_or_time, length = 1)
14
- date_or_time.to_date + 7 * length
14
+ date_or_time.to_date + (7 * length)
15
15
  end
16
16
  end
17
17
  end
@@ -9,6 +9,7 @@ class Redis
9
9
  autoload :"#{periodical.capitalize}Counter", 'redis/periodical_counter'
10
10
  autoload :"#{periodical.capitalize}HashKey", 'redis/periodical_hash_key'
11
11
  autoload :"#{periodical.capitalize}Set", 'redis/periodical_set'
12
+ autoload :"#{periodical.capitalize}Value", 'redis/periodical_value'
12
13
  end
13
14
 
14
15
  module Objects
@@ -16,6 +17,7 @@ class Redis
16
17
  autoload :"#{periodical.capitalize}Counters", 'redis/objects/periodical_counters'
17
18
  autoload :"#{periodical.capitalize}Hashes", 'redis/objects/periodical_hashes'
18
19
  autoload :"#{periodical.capitalize}Sets", 'redis/objects/periodical_sets'
20
+ autoload :"#{periodical.capitalize}Values", 'redis/objects/periodical_values'
19
21
  end
20
22
 
21
23
  class << self
@@ -29,6 +31,7 @@ class Redis
29
31
  klass.send :include, const_get("Redis::Objects::#{periodical.capitalize}Counters")
30
32
  klass.send :include, const_get("Redis::Objects::#{periodical.capitalize}Hashes")
31
33
  klass.send :include, const_get("Redis::Objects::#{periodical.capitalize}Sets")
34
+ klass.send :include, const_get("Redis::Objects::#{periodical.capitalize}Values")
32
35
  end
33
36
  end
34
37
  end
@@ -29,8 +29,9 @@ Gem::Specification.new do |spec|
29
29
 
30
30
  spec.required_ruby_version = '>= 2.7.0'
31
31
 
32
- spec.add_dependency 'redis-objects'
32
+ spec.add_dependency 'redis-objects', '~> 1.0'
33
33
 
34
34
  # For more information and examples about making a new gem, checkout our
35
35
  # guide at: https://bundler.io/guides/creating_gem.html
36
+ spec.metadata['rubygems_mfa_required'] = 'true'
36
37
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-objects-periodical
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.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-09-29 00:00:00.000000000 Z
11
+ date: 2023-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-objects
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.0'
27
27
  description: Extends Redis::Objects to switch automatically the save destination within
28
28
  Redis on changing dates.
29
29
  email:
@@ -54,13 +54,16 @@ files:
54
54
  - lib/redis/base_counter_object.rb
55
55
  - lib/redis/base_hash_key_object.rb
56
56
  - lib/redis/base_set_object.rb
57
+ - lib/redis/base_value_object.rb
57
58
  - lib/redis/objects/periodical/version.rb
58
59
  - lib/redis/objects/periodical_counters.rb
59
60
  - lib/redis/objects/periodical_hashes.rb
60
61
  - lib/redis/objects/periodical_sets.rb
62
+ - lib/redis/objects/periodical_values.rb
61
63
  - lib/redis/periodical_counter.rb
62
64
  - lib/redis/periodical_hash_key.rb
63
65
  - lib/redis/periodical_set.rb
66
+ - lib/redis/periodical_value.rb
64
67
  - lib/redis/recurring_at_intervals.rb
65
68
  - lib/redis/recurring_at_intervals/annual.rb
66
69
  - lib/redis/recurring_at_intervals/daily.rb
@@ -76,6 +79,7 @@ metadata:
76
79
  homepage_uri: https://github.com/ryz310/redis-objects-periodical
77
80
  source_code_uri: https://github.com/ryz310/redis-objects-periodical
78
81
  changelog_uri: https://github.com/ryz310/redis-objects-periodical/blob/master/CHANGELOG.md
82
+ rubygems_mfa_required: 'true'
79
83
  post_install_message:
80
84
  rdoc_options: []
81
85
  require_paths:
@@ -91,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
95
  - !ruby/object:Gem::Version
92
96
  version: '0'
93
97
  requirements: []
94
- rubygems_version: 3.3.11
98
+ rubygems_version: 3.4.6
95
99
  signing_key:
96
100
  specification_version: 4
97
101
  summary: Extends Redis::Objects as periodical.