flipper-mongo 1.0.0 → 1.1.1

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: '046698cbd88b1a0acade2d9bfc9bad87e45ee3e10272a6f6f9a953cf1719046b'
4
- data.tar.gz: 2c4565473723375e3cdcb2f25b4a7eb467fb557a22c00bed7c34eea07cd8d5b3
3
+ metadata.gz: 379d1d9f6bb0a69540fd134a0db0278c138d6ed8f7daebe41da88116159e492f
4
+ data.tar.gz: f3363a906aac5c22a223a9b3e21a4ebf9b8b0a9cd6450355834c4ab8379b4e58
5
5
  SHA512:
6
- metadata.gz: ae85592801ddef70d2a6d94b5da3bdc74886fc60686088de5ef9d55c5eb04cf39874c0c5da656f80af938cf9cca7295319744ae39430d906589c17eeffd359ff
7
- data.tar.gz: cef6b97600d3f27a77c3f15b0f55b756768dac015265dbc5ac4e5be4eeff44143563a62be86571f4c81caa94b4ebf7bb8fff4bd51e1dea258e0cf7d59c40d32c
6
+ metadata.gz: a64737bd9926d136553f260b0aa5e1695bb45ba1fee1ef61a794d5294ec8cddc11ae58bc58ecce0cf1e3003f326ea4972cc5739ceefad1b62af2ade8873d67ab
7
+ data.tar.gz: 265623b1464ff065ac671b5cf13bcd2d713aed6c41789a8a4cac7cfc4d3f1a122a5958bb44cb43b5da04e86db27217cc2905ee608eafcf953f15456c4e8b1c16
@@ -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.1'.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.1
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-09 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.1
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.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mongo
29
29
  requirement: !ruby/object:Gem::Requirement