flipper-mongo 0.5.0 → 0.6.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.
- data/flipper-mongo.gemspec +1 -1
- data/lib/flipper/adapters/mongo.rb +25 -13
- data/lib/flipper/adapters/mongo/version.rb +1 -1
- metadata +6 -6
data/flipper-mongo.gemspec
CHANGED
@@ -15,6 +15,6 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
17
|
|
18
|
-
gem.add_dependency 'flipper', '~> 0.
|
18
|
+
gem.add_dependency 'flipper', '~> 0.6.0'
|
19
19
|
gem.add_dependency 'mongo', '~> 1.8'
|
20
20
|
end
|
@@ -18,6 +18,29 @@ module Flipper
|
|
18
18
|
@name = :mongo
|
19
19
|
end
|
20
20
|
|
21
|
+
# Public: The set of known features.
|
22
|
+
def features
|
23
|
+
find(FeaturesKey).fetch('features') { Set.new }.to_set
|
24
|
+
end
|
25
|
+
|
26
|
+
# Public: Adds a feature to the set of known features.
|
27
|
+
def add(feature)
|
28
|
+
update FeaturesKey, '$addToSet' => {'features' => feature.name.to_s}
|
29
|
+
true
|
30
|
+
end
|
31
|
+
|
32
|
+
# Public: Removes a feature from the set of known features.
|
33
|
+
def remove(feature)
|
34
|
+
update FeaturesKey, '$pull' => {'features' => feature.name.to_s}
|
35
|
+
clear feature
|
36
|
+
true
|
37
|
+
end
|
38
|
+
|
39
|
+
# Public: Clears all the gate values for a feature.
|
40
|
+
def clear(feature)
|
41
|
+
delete feature.key
|
42
|
+
end
|
43
|
+
|
21
44
|
# Public: Gets the values for all gates for a given feature.
|
22
45
|
#
|
23
46
|
# Returns a Hash of Flipper::Gate#key => value.
|
@@ -73,7 +96,7 @@ module Flipper
|
|
73
96
|
def disable(feature, gate, thing)
|
74
97
|
case gate.data_type
|
75
98
|
when :boolean
|
76
|
-
|
99
|
+
delete feature.key
|
77
100
|
when :integer
|
78
101
|
update feature.key, '$set' => {gate.key.to_s => thing.value.to_s}
|
79
102
|
when :set
|
@@ -85,17 +108,6 @@ module Flipper
|
|
85
108
|
true
|
86
109
|
end
|
87
110
|
|
88
|
-
# Public: Adds a feature to the set of known features.
|
89
|
-
def add(feature)
|
90
|
-
update FeaturesKey, '$addToSet' => {'features' => feature.name.to_s}
|
91
|
-
true
|
92
|
-
end
|
93
|
-
|
94
|
-
# Public: The set of known features.
|
95
|
-
def features
|
96
|
-
find(FeaturesKey).fetch('features') { Set.new }.to_set
|
97
|
-
end
|
98
|
-
|
99
111
|
# Private
|
100
112
|
def unsupported_data_type(data_type)
|
101
113
|
raise "#{data_type} is not supported by this adapter"
|
@@ -113,7 +125,7 @@ module Flipper
|
|
113
125
|
end
|
114
126
|
|
115
127
|
# Private
|
116
|
-
def
|
128
|
+
def delete(key)
|
117
129
|
@collection.remove criteria(key)
|
118
130
|
end
|
119
131
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flipper-mongo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: flipper
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.6.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
29
|
+
version: 0.6.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: mongo
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
79
|
version: '0'
|
80
80
|
segments:
|
81
81
|
- 0
|
82
|
-
hash:
|
82
|
+
hash: 2022872060542852797
|
83
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
version: '0'
|
89
89
|
segments:
|
90
90
|
- 0
|
91
|
-
hash:
|
91
|
+
hash: 2022872060542852797
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
94
|
rubygems_version: 1.8.23
|