flipper-mongo 1.0.0.pre → 1.1.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: 97a94be3f927f4d8872d454800a793d7f1e649b5b5f9c96bb8a9d5e9b81b9bff
4
- data.tar.gz: dbe76bdbfcc875fd3dc3bc6bf9ffb9c786e3f22ed5f969775675b74be65d5881
3
+ metadata.gz: b56f8fba7c5d61dd492844834b2a5285b6b7f826acfa36311a6b27aedf60614c
4
+ data.tar.gz: b5fc38081e4f660d22d4862862b11489fe4c93deb1dc68223a6cc9edc1fc3f0b
5
5
  SHA512:
6
- metadata.gz: 8bd21e5778e6896a0208c433651083849e48b52651fc309e7061fe789708412ee92a9ee507596103807a926347903da0ca6cf1ad8c5ecfe7b47b924f3f38b295
7
- data.tar.gz: 49f634dc8ef91c48df84ddfd80d5c1ee17daaf9741b825b59dad9c41a1140b7435e8c062bc8e8fc99b59810b2a61df8521ceafd0e9117836a0c513716a1f15ef
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.pre'.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.pre
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-02 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.pre
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.pre
26
+ version: 1.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mongo
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,9 +58,9 @@ licenses:
58
58
  metadata:
59
59
  documentation_uri: https://www.flippercloud.io/docs
60
60
  homepage_uri: https://www.flippercloud.io
61
- source_code_uri: https://github.com/jnunemaker/flipper
62
- bug_tracker_uri: https://github.com/jnunemaker/flipper/issues
63
- changelog_uri: https://github.com/jnunemaker/flipper/blob/main/Changelog.md
61
+ source_code_uri: https://github.com/flippercloud/flipper
62
+ bug_tracker_uri: https://github.com/flippercloud/flipper/issues
63
+ changelog_uri: https://github.com/flippercloud/flipper/blob/main/Changelog.md
64
64
  post_install_message:
65
65
  rdoc_options: []
66
66
  require_paths:
@@ -72,11 +72,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
72
  version: '0'
73
73
  required_rubygems_version: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ">"
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
- version: 1.3.1
77
+ version: '0'
78
78
  requirements: []
79
- rubygems_version: 3.3.7
79
+ rubygems_version: 3.4.10
80
80
  signing_key:
81
81
  specification_version: 4
82
82
  summary: Mongo adapter for Flipper