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 +4 -4
- data/lib/flipper/adapters/mongo.rb +21 -12
- data/lib/flipper/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b56f8fba7c5d61dd492844834b2a5285b6b7f826acfa36311a6b27aedf60614c
|
4
|
+
data.tar.gz: b5fc38081e4f660d22d4862862b11489fe4c93deb1dc68223a6cc9edc1fc3f0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
@
|
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
|
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
|
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' => {
|
104
|
+
update feature.key, '$set' => {
|
105
|
+
gate.key.to_s => thing.value.to_s,
|
106
|
+
}
|
107
107
|
when :set
|
108
|
-
update feature.key, '$pull' => {
|
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(
|
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
|
data/lib/flipper/version.rb
CHANGED
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.
|
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
|
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.
|
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.
|
26
|
+
version: 1.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mongo
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|