fino-redis 1.1.4 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ad65c0dcfc0c746436ea1978fdd1df569330d90c178c19c54f491f353d0a9e4
4
- data.tar.gz: cec6395595cfb7798bda3779e3d2e9ed7703e994a8995e3407fd4af5e5942d7c
3
+ metadata.gz: d008dcb98a7f099164cd0b185da4f9de189799f7b9cb8ac4256a87795664d223
4
+ data.tar.gz: 2057b0ec99f232cdcdc8a07b2af87a29d7151b3dca1e300dabf3270479a502d7
5
5
  SHA512:
6
- metadata.gz: 8e5de76b8b51df1294000b156ededfe594878cc856e285d1ffb1a32027bbf68e8e82cc3001ec58920c176ac72ad999ccbc8a1957a01e301da0e2c54ad40f0f21
7
- data.tar.gz: 1b7400e7de25ebccfcafe103c18e5cf0eab88793086e55c88d090c7384ac0f4c2ef895679ee3adedc3fb57c00413aaf610ae507b66f3714ba8534e005037003e
6
+ metadata.gz: 3bd8407f21f3d6b69bac82d263646723109d3e2ff92453dde4b1c13687c9b9496ba26a1d3f3d5cbf0956ac3048e870e1a70aee8d6a2185194663214fe606c4ed
7
+ data.tar.gz: 7811852bc152a9c24f8baa5a7a5ea91daf63a986017543274bff80c84ffabd606224c17288fdaa60a2487014e75e5d59cfe6abab9759ca9ceeec24109c53fea8
@@ -15,8 +15,12 @@ class Fino::Redis::Adapter
15
15
  redis.hgetall(redis_key_for(setting_definition))
16
16
  end
17
17
 
18
- def write(setting_definition, value)
19
- redis.hset(redis_key_for(setting_definition), VALUE_KEY, setting_definition.type_class.serialize(value))
18
+ def write(setting_definition, value, **context)
19
+ key = redis_key_for(setting_definition)
20
+ hash_key = redis_hash_value_key_for(context)
21
+ value = setting_definition.type_class.serialize(value)
22
+
23
+ redis.hset(key, hash_key, value)
20
24
  end
21
25
 
22
26
  def read_multi(setting_definitions)
@@ -31,10 +35,23 @@ class Fino::Redis::Adapter
31
35
  raw_adapter_data.key?(VALUE_KEY) ? raw_adapter_data.delete(VALUE_KEY) : Fino::EMPTINESS
32
36
  end
33
37
 
38
+ def fetch_scoped_values_from(raw_adapter_data)
39
+ raw_adapter_data.each_with_object({}) do |(key, value), memo|
40
+ next unless key.start_with?("s/")
41
+
42
+ scope = key.split("/", 3)[1]
43
+ memo[scope] = value
44
+ end
45
+ end
46
+
34
47
  private
35
48
 
36
49
  attr_reader :redis, :redis_namespace
37
50
 
51
+ def redis_hash_value_key_for(context)
52
+ context[:scope] ? "s/#{context[:scope]}/#{VALUE_KEY}" : VALUE_KEY
53
+ end
54
+
38
55
  def redis_key_for(setting_definition)
39
56
  "#{redis_namespace}:#{setting_definition.path.join(':')}"
40
57
  end
data/lib/fino/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fino
4
- VERSION = "1.1.4"
4
+ VERSION = "1.2.0"
5
5
  REQUIRED_RUBY_VERSION = ">= 3.0.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fino-redis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Egor Iskrenkov
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 1.1.4
18
+ version: 1.2.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 1.1.4
25
+ version: 1.2.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: redis
28
28
  requirement: !ruby/object:Gem::Requirement