flipper-mongo 1.0.0 → 1.1.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: '046698cbd88b1a0acade2d9bfc9bad87e45ee3e10272a6f6f9a953cf1719046b'
4
- data.tar.gz: 2c4565473723375e3cdcb2f25b4a7eb467fb557a22c00bed7c34eea07cd8d5b3
3
+ metadata.gz: b56f8fba7c5d61dd492844834b2a5285b6b7f826acfa36311a6b27aedf60614c
4
+ data.tar.gz: b5fc38081e4f660d22d4862862b11489fe4c93deb1dc68223a6cc9edc1fc3f0b
5
5
  SHA512:
6
- metadata.gz: ae85592801ddef70d2a6d94b5da3bdc74886fc60686088de5ef9d55c5eb04cf39874c0c5da656f80af938cf9cca7295319744ae39430d906589c17eeffd359ff
7
- data.tar.gz: cef6b97600d3f27a77c3f15b0f55b756768dac015265dbc5ac4e5be4eeff44143563a62be86571f4c81caa94b4ebf7bb8fff4bd51e1dea258e0cf7d59c40d32c
6
+ metadata.gz: cb1dadceed94aa30c04ec6f387e6a5e309205abaa33fcce1914c122c81c4c9e3e02c7650fac9e70387458fb256b44b177b0ac5adeffd43b7457d022cc649c5ee
7
+ data.tar.gz: 6be924488a3e981a5cb4d0b0e9a6295489845d1d9f60696b35b246bbf00f325ac67325e08e58267c36fe2cec3078b971e4d01d217adbd174ee6aa08f83ab2e55
@@ -7,18 +7,12 @@ module Flipper
7
7
  class Mongo
8
8
  include ::Flipper::Adapter
9
9
 
10
- # Private: The key that stores the set of known features.
11
- FeaturesKey = :flipper_features
12
-
13
- # Public: The name of the adapter.
14
- attr_reader :name
15
-
16
10
  # Public: The name of the collection storing the feature data.
17
11
  attr_reader :collection
18
12
 
19
13
  def initialize(collection)
20
14
  @collection = collection
21
- @name = :mongo
15
+ @features_key = :flipper_features
22
16
  end
23
17
 
24
18
  # Public: The set of known features.
@@ -28,13 +22,13 @@ module Flipper
28
22
 
29
23
  # Public: Adds a feature to the set of known features.
30
24
  def add(feature)
31
- update FeaturesKey, '$addToSet' => { 'features' => feature.key }
25
+ update @features_key, '$addToSet' => { 'features' => feature.key }
32
26
  true
33
27
  end
34
28
 
35
29
  # Public: Removes a feature from the set of known features.
36
30
  def remove(feature)
37
- update FeaturesKey, '$pull' => { 'features' => feature.key }
31
+ update @features_key, '$pull' => { 'features' => feature.key }
38
32
  clear feature
39
33
  true
40
34
  end
@@ -84,6 +78,10 @@ module Flipper
84
78
  update feature.key, '$addToSet' => {
85
79
  gate.key.to_s => thing.value.to_s,
86
80
  }
81
+ when :json
82
+ update feature.key, '$set' => {
83
+ gate.key.to_s => Typecast.to_json(thing.value),
84
+ }
87
85
  else
88
86
  unsupported_data_type gate.data_type
89
87
  end
@@ -103,9 +101,17 @@ module Flipper
103
101
  when :boolean
104
102
  delete feature.key
105
103
  when :integer
106
- update feature.key, '$set' => { gate.key.to_s => thing.value.to_s }
104
+ update feature.key, '$set' => {
105
+ gate.key.to_s => thing.value.to_s,
106
+ }
107
107
  when :set
108
- update feature.key, '$pull' => { gate.key.to_s => thing.value.to_s }
108
+ update feature.key, '$pull' => {
109
+ gate.key.to_s => thing.value.to_s,
110
+ }
111
+ when :json
112
+ update feature.key, '$set' => {
113
+ gate.key.to_s => nil,
114
+ }
109
115
  else
110
116
  unsupported_data_type gate.data_type
111
117
  end
@@ -116,7 +122,7 @@ module Flipper
116
122
  private
117
123
 
118
124
  def read_feature_keys
119
- find(FeaturesKey).fetch('features') { Set.new }.to_set
125
+ find(@features_key).fetch('features') { Set.new }.to_set
120
126
  end
121
127
 
122
128
  def read_many_features(features)
@@ -167,6 +173,9 @@ module Flipper
167
173
  doc[gate.key.to_s]
168
174
  when :set
169
175
  doc.fetch(gate.key.to_s) { Set.new }.to_set
176
+ when :json
177
+ value = doc[gate.key.to_s]
178
+ Typecast.from_json(value)
170
179
  else
171
180
  unsupported_data_type gate.data_type
172
181
  end
@@ -1,3 +1,3 @@
1
1
  module Flipper
2
- VERSION = '1.0.0'.freeze
2
+ VERSION = '1.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flipper-mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-23 00:00:00.000000000 Z
11
+ date: 2023-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: flipper
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0
19
+ version: 1.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: 1.0.0
26
+ version: 1.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mongo
29
29
  requirement: !ruby/object:Gem::Requirement